这篇文章写的是如何同时执行多个.py文件然后生成测试报告
项目结构:
case :放test开头的.py用例脚本
report :放生成的html报告
run_all.py 用于执行全部脚本
![](https://img.haomeiwen.com/i2014194/343bcbbc171675b9.png)
case里的.py文件就是平时写的写文件,不需要单独写,直接拷贝一份就可以了,但是这个文件夹的文件名必须要以相同的字符开头,这样才方便后面加载
run_all.py代码:
import unittest
import HTMLTestRunner
import os
# 获取路径
curpath = os.path.dirname(os.path.realpath(__file__))#获取当前文件的路径
casepath = os.path.join(curpath, "case")#用join方法拼接路径
reportpath = os.path.join(curpath, "report")
def add_case(case_path=casepath, rule="test_*.py"):
'''加载所有的测试用例'''
discover = unittest.defaultTestLoader.discover(case_path,
pattern=rule,
top_level_dir=None)
return discover
def run_case(all_case, report_path=reportpath, nth=0):
'''执行所有的用例, 并把结果写入测试报告'''
report_abspath = os.path.join(report_path, "result%s.html"%nth)
fp = open(report_abspath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u'自动化测试报告,测试结果如下:',
description=u'用例执行情况:')
# 调用add_case函数返回值
runner.run(all_case)
fp.close()
if __name__ == "__main__":
# 用例集合
cases = add_case()
# 之前是批量执行,这里改成for循环执行
for i, j in zip(cases, range(len(list(cases)))):
run_case(i, nth=j) # 执行用例,生成报告
网友评论