python_单元测试unittest的三种运行方式(2)
'''
********************************
****第一种方式运行流程****
********************************
0、先写testcase
测试套件
导入模块
from ... import ...
1、初始化测试套件
suite=unittest.TestSuite()
2、往测试套件中添加测试用例
cases=[类名('方法名'),类名('方法名')]
suite.addTests(cases)
3、运行前先将测试报告写在一个文件中
with open('demo.txt','w',encoding='utf8') as f:
3.1、初始化runner
runner=unittest.TextTestRunner(f,verbosity=2)
3.2、运行
runner.run(suite)
上面的1和2步骤,可以更改为(*如下两行*)
cases=[类名('方法名'),类名('方法名')]
suite=unittest.TestSuite(tests=cases)
-------------------------------------------------
********************************
****第二种方式运行流程****
loader
********************************
1、导入模块
from ... import ...
2、初始化loader
loader=unittest.TestLoader()
3、 cases1=loader.loadTestsFromTestCase(类名)
cases2=loader.loadTestsFromeTestCase(类名)
suite=unittest.TestSuite()
suite.addTests(case1)
suite.addTests(case2)
或者可以导入模块
先导入from ... import 模块名
cases1=loader.loadTestsFromTestCase(模块名)
cases2=loader.loadTestsFromeTestCase(模块名)
suite=unittest.TestSuite()
suite.addTests(case1)
suite.addTests(case2)
with open(xxx)
xxx
********************************
【HTML格式报告】
****第三种方式运行流程****
自动发现测试用例
********************************
导入HTMLTestRunner
from HTMLTestRunnerNew import HTMLTestRunner
初始化loader
loader=unittest.TestLoader()
-----------------------------
自动发现测试用例 ***测试用例模块名称用test开头命名*** 否则会识别不到,报错
-----------------------------
start_dir=os.path.dirname(os.path.abspath(__file__))
suite=loader.discover(start_dir)
创建一个文件,测试报告生成在report文件中
file_dir=os.path.join(start_dir,'report')
if not os.path.exists(file_dir):
os.mkdir(file_dir)
文件名字,用时间格式表示
file_time=datetime.now().strftime(%Y%m%d%H%M%S)
拼接起来
file_name=os.path.join(file_dir,file_time+'.html')
打开文件
with open(file_name,'wb') as f:
初始化
runner=HTMLTestRunner(f,
verbosity=2,
title='报告名称',
description='关键字参数名称',
tester='测试人员名称')
运行
runner.run(suite)
'''
十载长安得一第,何须空腹用高心