运行多个测试类时,使用HTMLTestRunner生成单个文件

时间:2017-02-27 13:51:38

标签: python unit-testing selenium

我正在尝试将HTMLTestRunner配置为在调用多个测试类时输出到单个文件,但经过多次阅读后我无法实现此目的。

我正在做的一个例子是:

class TestOne(unittest.TestCase):
    def test_one_is_one(self):
        one = 1
        self.assertEqual(1, one)


class TestTwo(unittest.TestCase):
    def test_two_is_two(self):
        two = 2
        self.assertEqual(2, two)

然后我将这些添加到测试套件中并运行HTMLTestRunner,如下所示:

output = 'C:\\Reports\TestReport.html'

test_suite = unittest.TestSuite(unittest.TestLoader().loadTestsFromModule(Tests))
runner = HTMLTestRunner(output=output)
runner.run(test_suite)

然而,当这样运行时,我会生成两个HTML文件,一个用于TestOne,另一个用于TestTwo。

我环顾四周,其他一些例子我也遇到过使用:

with open(output, 'wb') as o:
    runner = HTMLTestRunner(output=o)
    runner.run(test_suite)

然而,HTMLTestRunner似乎不再支持此功能。

我可能会追求什么?

我非常喜欢生成的报告,但我真的不想处理大量需要合并在一起或单独查看的小型HTML文件。

其他信息: 我正在使用Python 3.5和HTMLTestRunner 1.0.3

2 个答案:

答案 0 :(得分:2)

我知道这是一张旧票,但认为值得分享以下信息。

我想做与原始问题相同的事情,即整个测试套件的单个 HTML 报告。在最新版本的 HtmlTestRunner(使用 pip install html-testRunner 安装)中,可以使用以下选项:

combine_test_reports=True

可以如下使用:

html_runner = HtmlTestRunner.HTMLTestRunner(
              stream=output_file,
              combine_reports=True,
              report_title='HTML test runner report')

答案 1 :(得分:0)

Lw246,

我看到两个htmltestrunners。您使用的1.0.3版本似乎有所不同,并且仍处于测试版。作者称它为html-testrunner,带有' - '

tungwaiyip的原始htmlrunner被称为'htmltestrunner'而没有' - ',它已经与新版本分叉。你可以在这里看到它:I got 99 problems, but they’re all due to template over-instantiation | Nathan's Blog

您还可以在此处查看2个不同的htmltestrunners: https://github.com/dash0002/HTMLTestRunner

此外,还有一个htmltestrunner2:)