我在使用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时,文件显示为空白。
我做错了什么?
答案 0 :(得分:2)
您好我已经修改了HTMLTestRunner.py文件中的代码以使用Python 3.x并遵循正常流程像往常一样导入模块 希望它可能会有所帮助
LastColNum = Range("ZZ" & RN1).End(xlToLeft).Column
答案 1 :(得分:0)
首先,我不认为HTMLTestRunner适用于Python 3.x ......所以你运气不好。但是我们假设您正在尝试使用Python 2.7 ...
你有很多问题。您应该真正阅读unittest和HTMLTestRunner的文档。
但是,请考虑这个示例,它在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评论中详细说明了这些变化,这对我很有帮助,尽管他的一些行号都没有了。我还必须自己对文件进行一些编辑,以便让我能为我工作,例如:
答案 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 == 'main': unittest.main()