(demo模块代码见上一篇)
#!/usr/bin/env python
# coding=utf-8
import unittest
from datetime import datetime
from HTMLTestRunner_pie import HTMLTestRunner
import ddt
# import os
# 申明测试类中使用ddt模块装饰
@ddt.ddt
class TestInterfaceRun(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 test_03(self): # 测试用例的命名必须以test开头,否则不予执行
print('04: 第三条case')
@ddt.data([''], ['']) #
def test_01(self, first):
print('01: 第一条case')
@unittest.skip('不执行这条case') # 跳过这条case
def test_02(self):
print('02: 第二条case')
@unittest.skipIf(3 < 2, '条件为真,跳过该用例')
def test_04(self):
print('04: 第四条case')
if __name__ == '__main__':
# test_dir = os.path.join(os.getcwd()) # os.getcwd()获取当前目录,os.path.join()组成新目录
# 自动搜索指定目录下的case,构造测试集, 执行顺序是命名顺序:先执行test_add,再执行test_sub
# discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
case_suite = [TestInterfaceRun('test_03'), TestInterfaceRun('test_02'), TestInterfaceRun('test_01')]
print(case_suite)
report = datetime.now().date().isoformat() + 'report.html'
with open(report, mode='wb') as fp:
runner = HTMLTestRunner(stream=fp, title='接口测试报告', description='详细描述')
for case in case_suite:
runner.run(case)
print(case)
runner.run(discover)
Testing started at 21:44 ...
这是所有case的前置条件这是每条case的前置条件
01: 第一条case
这是每条case的后置条件
这是每条case的前置条件
01: 第一条case
这是每条case的后置条件
Skipped: 不执行这条case
这是每条case的前置条件
03: 第三条case
这是每条case的后置条件
这是每条case的前置条件
04: 第四条case
这是每条case的后置条件
这是所有case的后置条件
Ran 5 tests in 0.004s
OK (skipped=1)
Process finished with exit code 0