diff --git a/HtmlTestRunner/result.py b/HtmlTestRunner/result.py
index 96fb431..e6d0e44 100644
--- a/HtmlTestRunner/result.py
+++ b/HtmlTestRunner/result.py
@@ -360,10 +360,13 @@ def generate_reports(self, testRunner):
**testRunner.template_args
)
# append test case name if multiple reports to be generated
- if testRunner.report_name is None:
- report_name_body = self.default_prefix + test_case_class_name
+ if testRunner.report_name is not None:
+ if len(all_results.values()) == 1:
+ report_name_body = testRunner.report_name
+ else:
+ report_name_body = "{}_{}".format(testRunner.report_name, test_case_class_name)
else:
- report_name_body = "{}_{}".format(testRunner.report_name, test_case_class_name)
+ report_name_body = self.default_prefix + test_case_class_name
self.generate_file(testRunner, report_name_body, html_file)
else:
diff --git a/tests/test.py b/tests/test.py
index a4e4d5a..712c300 100644
--- a/tests/test.py
+++ b/tests/test.py
@@ -1,59 +1,59 @@
-# import HtmlTestRunner
-# import unittest
+import HtmlTestRunner
+import unittest
-# class TestStringMethods(unittest.TestCase):
-# """ Example test for HtmlRunner. """
+class TestStringMethods(unittest.TestCase):
+ """ Example test for HtmlRunner. """
-# def test_upper(self):
-# self.assertEqual('foo'.upper(), 'FOO')
+ def test_upper(self):
+ self.assertEqual('foo'.upper(), 'FOO')
-# def test_isupper(self):
-# self.assertTrue('FOO'.isupper())
-# self.assertFalse('Foo'.isupper())
+ def test_isupper(self):
+ self.assertTrue('FOO'.isupper())
+ self.assertFalse('Foo'.isupper())
-# def test_split(self):
-# s = 'hello world'
-# self.assertEqual(s.split(), ['hello', 'world'])
-# # check that s.split fails when the separator is not a string
-# with self.assertRaises(TypeError):
-# s.split(2)
+ def test_split(self):
+ s = 'hello world'
+ self.assertEqual(s.split(), ['hello', 'world'])
+ # check that s.split fails when the separator is not a string
+ with self.assertRaises(TypeError):
+ s.split(2)
-# def test_error(self):
-# """ This test should be marked as error one. """
-# raise ValueError
+ def test_error(self):
+ """ This test should be marked as error one. """
+ raise ValueError
-# def test_fail(self):
-# """ This test should fail. """
-# self.assertEqual(1, 2)
+ def test_fail(self):
+ """ This test should fail. """
+ self.assertEqual(1, 2)
-# @unittest.skip("This is a skipped test.")
-# def test_skip(self):
-# """ This test should be skipped. """
-# pass
+ @unittest.skip("This is a skipped test.")
+ def test_skip(self):
+ """ This test should be skipped. """
+ pass
-# def test_subs_fail(self):
-# test_string = "test1"
-# for i, char in enumerate(test_string):
-# with self.subTest(i=i):
-# self.assertEqual(char, "1")
+ def test_subs_fail(self):
+ test_string = "test1"
+ for i, char in enumerate(test_string):
+ with self.subTest(i=i):
+ self.assertEqual(char, "1")
-# with self.subTest(test_string=test_string):
-# # subtests that error will appear as a failure presently
-# raise AttributeError
+ with self.subTest(test_string=test_string):
+ # subtests that error will appear as a failure presently
+ raise AttributeError
-# class MoreTests(unittest.TestCase):
-# def test_1(self):
-# print("This is different to test2.MoreTests.test_1")
-# self.assertEqual(100, -100)
+class MoreTests(unittest.TestCase):
+ def test_1(self):
+ print("This is different to test2.MoreTests.test_1")
+ self.assertEqual(100, -100)
-# if __name__ == '__main__':
-# unittest.main(
-# testRunner=HtmlTestRunner.HTMLTestRunner(
-# open_in_browser=True,
-# combine_reports=True,
-# template_args={}
-# )
-# )
+if __name__ == '__main__':
+ unittest.main(
+ testRunner=HtmlTestRunner.HTMLTestRunner(
+ open_in_browser=True,
+ combine_reports=True,
+ template_args={}
+ )
+ )
diff --git a/tests/test2.py b/tests/test2.py
index 34d2cad..112dac0 100644
--- a/tests/test2.py
+++ b/tests/test2.py
@@ -1,70 +1,79 @@
-# import unittest
-
-# from HtmlTestRunner import HTMLTestRunner
-
-# from test import TestStringMethods
-# from test import MoreTests as MoreTests_
-
-
-# class My_Tests(unittest.TestCase):
-
-# def test_one(self):
-# self.assertTrue(True)
-
-# def test_two(self):
-# # demonstrate that stdout is captured in passing tests
-# print("HOLA CARACOLA")
-# self.assertTrue(True)
-
-# def test_three(self):
-# self.assertTrue(True)
-
-# def test_1(self):
-# # demonstrate that stdout is captured in failing tests
-# print("HELLO")
-# self.assertTrue(False)
-
-# def test_2(self):
-# self.assertTrue(False)
-
-# def test_3(self):
-# self.assertTrue(False)
-
-# def test_z_subs_pass(self):
-# for i in range(2):
-# with self.subTest(i=i):
-# print("i = {}".format(i)) # this won't appear for now
-# self.assertEqual(i, i)
-
-
-# class MoreTests(unittest.TestCase):
-# def test_1(self):
-# print("This is different to test.MoreTests.test_1")
-# self.assertAlmostEqual(1, 1.1, delta=0.05)
-
-
-# if __name__ == '__main__':
-# tests = unittest.TestLoader().loadTestsFromTestCase(My_Tests)
-# other_tests = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
-# more_tests = unittest.TestLoader().loadTestsFromTestCase(MoreTests)
-# more_tests_ = unittest.TestLoader().loadTestsFromTestCase(MoreTests_)
-# suite = unittest.TestSuite([tests, other_tests, more_tests, more_tests_])
-# HTMLTestRunner(
-# report_title='TEST COMBINED',
-# report_name="MyReports",
-# add_timestamp=False,
-# open_in_browser=True,
-# combine_reports=True
-# ).run(suite)
-
-# tests = unittest.TestLoader().loadTestsFromTestCase(My_Tests)
-# other_tests = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
-# more_tests = unittest.TestLoader().loadTestsFromTestCase(MoreTests)
-# more_tests_ = unittest.TestLoader().loadTestsFromTestCase(MoreTests_)
-# suite = unittest.TestSuite([tests, other_tests, more_tests, more_tests_])
-# HTMLTestRunner(
-# report_title='TEST SEPARATE',
-# report_name="MyReports",
-# open_in_browser=True,
-# combine_reports=False
-# ).run(suite)
+import unittest
+
+from HtmlTestRunner import HTMLTestRunner
+
+from test import TestStringMethods
+from test import MoreTests as MoreTests_
+
+
+class My_Tests(unittest.TestCase):
+
+ def test_one(self):
+ self.assertTrue(True)
+
+ def test_two(self):
+ # demonstrate that stdout is captured in passing tests
+ print("HOLA CARACOLA")
+ self.assertTrue(True)
+
+ def test_three(self):
+ self.assertTrue(True)
+
+ def test_1(self):
+ # demonstrate that stdout is captured in failing tests
+ print("HELLO")
+ self.assertTrue(False)
+
+ def test_2(self):
+ self.assertTrue(False)
+
+ def test_3(self):
+ self.assertTrue(False)
+
+ def test_z_subs_pass(self):
+ for i in range(2):
+ with self.subTest(i=i):
+ print("i = {}".format(i)) # this won't appear for now
+ self.assertEqual(i, i)
+
+
+class MoreTests(unittest.TestCase):
+ def test_1(self):
+ print("This is different to test.MoreTests.test_1")
+ self.assertAlmostEqual(1, 1.1, delta=0.05)
+
+
+if __name__ == '__main__':
+ tests = unittest.TestLoader().loadTestsFromTestCase(My_Tests)
+ other_tests = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
+ more_tests = unittest.TestLoader().loadTestsFromTestCase(MoreTests)
+ more_tests_ = unittest.TestLoader().loadTestsFromTestCase(MoreTests_)
+ suite0 = unittest.TestSuite([tests, other_tests, more_tests, more_tests_])
+ HTMLTestRunner(
+ report_title='TEST COMBINED',
+ report_name="MyReports",
+ add_timestamp=False,
+ open_in_browser=True,
+ combine_reports=True
+ ).run(suite0)
+
+ tests = unittest.TestLoader().loadTestsFromTestCase(My_Tests)
+ other_tests = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
+ more_tests = unittest.TestLoader().loadTestsFromTestCase(MoreTests)
+ more_tests_ = unittest.TestLoader().loadTestsFromTestCase(MoreTests_)
+ suite1 = unittest.TestSuite([tests, other_tests, more_tests, more_tests_])
+ HTMLTestRunner(
+ report_title='TEST SEPARATE',
+ report_name="MyReports",
+ open_in_browser=True,
+ combine_reports=False
+ ).run(suite1)
+
+ tests = unittest.TestLoader().loadTestsFromTestCase(My_Tests)
+ suite2 = unittest.TestSuite([tests])
+ HTMLTestRunner(
+ report_title='SINGLE TEST',
+ report_name="MySingleReport",
+ open_in_browser=True,
+ combine_reports=False
+ ).run(suite2)