unittest和HTMLTestRunner结合生成报告(四)
官方文档 https://pypi.org/project/html-testRunner/
安装方式:pip install html-testRunner
导入方式:import HtmlTestRunner
import unittest
import port
class TestMethod(unittest.TestCase):
def setUp(self):
self.url = 'http://127.0.0.1:8001/login/'
self.data = {
'username':'jonathantfff',
'password':'jack666666',
}
self.run = Runmain()
def tearDown(self):
print('teardown ')
def test_01(self):
res = self.run.run_main(self.url,self.data)
self.assertEqual(res['code']=101) #断言,断言成功则跳过,否则报错
globals()['code'] = res['code'] # globals()['code']定义全局变量(固定用法),这个全局变量可以给下一个测试的函数使用(集成测试)
def test_02(self):
print(code) #直接使用变量就可以返回定义的全局变量【使用的时候尽量减少依赖执行,unittest执行的时候是按照test后面的字母顺序执行的】
#通过这种方式跳过 "test_03"这个测试
@unittest.skip('test_03')
def test_03(self):
print('这是测试的第三个case')
if __name__ == '__main__':
#unittest.main()
#那么除了 "unittest"还有什么方法可以启动呢,unittest为我们提供了一个容器
suite = unittest.TestSuite() #创建容易
suite = addTest(TestMethod('test_01')) #向容器内添加测试
suite = addTest(TestMethod('test_02'))
suite = addTest(TestMethod('test_03'))
# unittest.TextTestRunner().run(suite) #启动容器(用HTMLTestRunner的话这句话就不需要了)
filepath = "./report/htmlreport.html" #定义文件路径
fp = file(filepath,'wb') #打开文件句柄
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='this is first report')
runner .run(suite)