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)

'''
posted @ 2019-09-23 01:13  落叶知秋log  阅读(476)  评论(0编辑  收藏  举报