此版本的运行和安装环境是在linux下,使用vscode配置的
首先准备好测试代码
以下是简单的一份
1 import unittest 2 import HTMLTestRunner 3 4 5 class TestCalc(unittest.TestCase): 6 def testcc(self): 7 '''this is first case''' 8 self.assertEqual(1, 1) 9 print('first case') 10 11 def testaa(self): 12 '''this is second case''' 13 self.assertEqual(2, 2) 14 print('second case') 15 16 def testdd(self): 17 '''this is third case''' 18 print('third case') 19 20 def testbb(self): 21 '''this is forth case''' 22 print('forth case') 23 24 25 if __name__ == "__main__": 26 # HTMLTestRunner.main() 27 suite1 = unittest.TestSuite() 28 suite1.addTest(TestCalc("testaa")) 29 suite1.addTest(TestCalc("testcc")) 30 31 with open("SenderResult.txt", "a") as f: 32 TXT_runner = unittest.TextTestRunner(stream=f, verbosity=2) 33 TXT_runner.run(suite1) 34 35 suite2 = unittest.TestSuite() 36 suite2.addTest(TestCalc("testaa")) 37 suite2.addTest(TestCalc("testcc")) 38 f = open('Easy_test.html', 'wb') 39 runner = HTMLTestRunner.HTMLTestRunner( 40 stream=f, 41 title='unittest case title', 42 description='this is case description') 43 runner.run(suite2) 44 f.close()
模块 是使用了pip3 install HTMLTestRunner之后自动安装的,然后去python的安装目录lib,查看是否有HTMLTestRunner.py文件,没有的话要下载一份放在lib目录下
然后要把HTMLTestRunner.py这个文件的一些内容修改一下才可以运行不报错
具体的修改内容如下:
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode('latin-1')修改成uo = e
第775行,将ue = e.decode('latin-1')修改成ue = e
第631行,将print >> sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))
好看一些的报告资源:
https://pypi.org/project/html-testRunner/
或直接用pip安装:pip3 install html-testRunner
注意:
每一个class类都会生成一份报告,所以运行一次py文件,有几个测试类就会生成几份报告
把几份报告合并到一起的办法:
cat A.html B.html >> NEW.html
这种合并的方式不止适用于html,text文件也适用(Windows上把cat换成copy即可)
报错:
1.报错仍找不到模块HTMLTestRunner
我的解决方法是暂且把HTMLTestRunner.py这个文件放到脚本的同级目录中去直接调用
2.文件运行成功但并没有生成html的报告
是由于(在linux上的vscode中编辑的)没有把报告生成的路径指明,用绝对路径指明报告位置后就成功生成了html报告