Python HTMLTestRunner不生成报告

时间:2015-06-20 13:09:29

标签: python python-3.x selenium-webdriver

我在使用HTMLTestRunner生成HTML报告时遇到问题。我在一个名为TestsSuite.py的文件中创建了一个测试套件。这是代码摘录:

import unittest
from LoginTest import LoginTest
from EditProfileTest import ProfileEditionTest
from EditAddressTest import EditAddressTest
from CreatePostTest import CreatePostTest
from HTMLTestRunner import HTMLTestRunner

def suite():
    suite = unittest.TestSuite()
    suite.addTest(LoginTest())
    suite.addTest(ProfileEditionTest())
    suite().addTest(EditAddressTest)
    suite().addTest(CreatePostTest)
    return suite
if ____name____ == "____main___":
    unittest.TextTestRunner(verbosity=2).run(suite())
    outfile = open('C:/Report.html', 'w')
    runner = HTMLTestRunner(stream=outfile,verbosity=2,title='LinkedIn Report',description='This is a demo report')
    runner.run(suite())

当我运行这段代码时,它运行完成,所有测试用例在PyUnit中显示为pass,但是当我打开Report.html时,文件显示为空白。

我做错了什么?

5 个答案:

答案 0 :(得分:2)

您好我已经修改了HTMLTestRunner.py文件中的代码以使用Python 3.x并遵循正常流程像往常一样导入模块 希望它可能会有所帮助

LastColNum = Range("ZZ" & RN1).End(xlToLeft).Column

答案 1 :(得分:0)

首先,我不认为HTMLTestRunner适用于Python 3.x ......所以你运气不好。但是我们假设您正在尝试使用Python 2.7 ...

你有很多问题。您应该真正阅读unittestHTMLTestRunner的文档。

但是,请考虑这个示例,它在python 2中实现了类似的结果:

import unittest
from HTMLTestRunner import HTMLTestRunner


class TestFoo(unittest.TestCase):
    def test_foo(self):
        self.assertTrue(True)


class TestBar(unittest.TestCase):
    def test_bar(self):
        self.assertFalse(False)


if __name__ == '__main__':
    loader = unittest.TestLoader()
    suite = unittest.TestSuite((
        loader.loadTestsFromTestCase(TestFoo),
        loader.loadTestsFromTestCase(TestBar)))
    outfile = file('Report.html', 'w')
    runner = HTMLTestRunner(stream=outfile,
                            verbosity=2,
                            title='LinkedIn Report',
                            description='This is a demo report')
    runner.run(suite)

答案 2 :(得分:0)

HTMLTestRunner似乎不再受到积极支持。我确实在Github上看到了一个帖子,当时HTMLTestRunner创建者tungwaiyip提到他没有时间支持HTMLTestRunner,并询问其他人是否会继续开发它。

在那次谈话中,两个人提到他们对文件所做的更改,以使其为他们工作。帖子位于:

https://github.com/tungwaiyip/HTMLTestRunner/issues/1

我在9月28日的locus2k评论中详细说明了这些变化,这对我很有帮助,尽管他的一些行号都没有了。我还必须自己对文件进行一些编辑,以便让我能为我工作,例如:

  • 第642行使用has_key,需要将其更改为'if not cls in RMAP:“
  • 第687行编码了一个在stream.write()上出错的字符串。变成 不编码字符串。

答案 3 :(得分:0)

你好,使用另一个 HTMLTestRunner 它可以在 python 3.5 以上正常工作

pip install HTMLTestRunner-rv

像这样写代码

import unittest
from LoginTest import LoginTest
from EditProfileTest import ProfileEditionTest
from EditAddressTest import EditAddressTest
from CreatePostTest import CreatePostTest
from HTMLTestRunner import HTMLTestRunner

def suite():
    suite = unittest.TestSuite()
    suite.addTest(unittest.TestLoader().loadTestsFromTestCase(LoginTest))
    suite.addTest(unittest.TestLoader().loadTestsFromTestCase(ProfileEditionTest))
    suite.addTest(unittest.TestLoader().loadTestsFromTestCase(EditAddressTest))
    suite.addTest(unittest.TestLoader().loadTestsFromTestCase(CreatePostTest))
    runner = HTMLTestRunner(title='Test report',open_in_browser=True,description='This is a demo report')
    runner.run(suite)
if ____name____ == "____main___":
    suite()

答案 4 :(得分:0)

对于 python 3.x,将“stream=outfile”更改为“output='\reports'”。报告是将在其中生成 html 报告的当前目录中的目标目录。它有效。

代码:

class MyTestSuite(unittest.TestCase):

def test_Issue(self):
    smoke_test = unittest.TestSuite()
    smoke_test.addTests([
        unittest.defaultTestLoader.loadTestsFromTestCase(WikiTest.MyWikiTestCase),
        unittest.defaultTestLoader.loadTestsFromTestCase(GoogleTest.MyGoogleTest),
    ])

    # outfile = open("SmokeTest.html", "w")

    runner1 = HTMLTestRunner.HTMLTestRunner(
        output= "\\repots",
        title='Test Report',
        description='This demonstrates the report output by Prasanna.Yelsangikar.'

    )
   
    runner1.run(smoke_test)

if name == 'ma​​in': unittest.main()