练手3:unittest自动化测试框架+HTMLTestRunner测试报告
#!/usr/bin/env python# coding=utf-8# 文件名:test_case01.py# coding=utf-8import unittestfrom HTMLTestRunner import HTMLTestRunnerfrom datetime import datetimeclass TestCase01(unittest.TestCase):...
·
#!/usr/bin/env python
# coding=utf-8
# 文件名:test_case01.py
# coding=utf-8
import unittest
from HTMLTestRunner import HTMLTestRunner
from datetime import datetime
class TestCase01(unittest.TestCase): # 继承unittest.TestCase
@classmethod
def setUpClass(cls):
print('这是所有case的前置条件01')
@classmethod
def tearDownClass(cls):
print('这是所有case的后置条件01')
def setUp(self):
print('这是每条case的前置条件01')
def tearDown(self):
print('这是每条case的后置条件01')
# 关闭打开的文件
def testThird_03(self): # 测试用例的命名必须以test开头,否则不予执行
print('01: 第三条case')
def testFirst_01(self):
print('01: 第一条case')
@unittest.skip('不执行这条case') # 跳过这条case
def testSecond_02(self):
print('01: 第二条case')
@unittest.skipIf(3 > 2, '条件为真,跳过该用例')
def testFourth_04(self):
print('01: 第四条case')
if __name__ == '__main__':
# # unittest.main() # 使用main()直接运行时,将按case的名称顺序执行
# suite = unittest.TestSuite()
# suite.addTest(TestCase01('testThird_03')) # 将需要执行的case添加到Test Suite中,没有添加的不会被执行
# suite.addTest(TestCase01('testSecond_02'))
# suite.addTest(TestCase01('testFirst_01'))
# unittest.TextTestRunner().run(suite) # 将根据case添加的先后顺序执行
suite_list = [TestCase01('testThird_03'), TestCase01('testSecond_02'), TestCase01('testFirst_01')]
# runner = unittest.TextTestRunner()
# for test_case in suite_list:
# runner.run(test_case)
# 生成HTML测试报告:
with open(datetime.now().date().isoformat()+'_report.html', 'wb') as fp:
runner = HTMLTestRunner(stream=fp, title='主标题-测试报告', description='小标题-test_report')
for test_case in suite_list:
runner.run(test_case)
更多推荐
所有评论(0)