一、跳过用例
分类:
1. 直接跳过
语法:@unittest.skip(说明)
场景:一般适合功能未实现完成用例
2. 条件满足跳过
语法:@unittest.skipIf(条件, 原因)
场景:一般判断条件满足,就不执行;如:达到指定版本,此功能失效;
提示:
以上两种方式,都可以修饰函数和类;
测试脚本:
test01.py
# 导包
import unittest
version = 30
# 测试类
class Test01(unittest.TestCase):
@unittest.skipIf(version > 25, "版本过高,跳过此用例!")
def test01(self):
print("test01")
def test02(self):
print("test02")
二、HTML测试报告
HTML报告:根据TextTestRunner改编而来
操作:
1. 导包
from xx.HTMLTestRunner import HTMLTestRunner
2. 定义测试套件
suite = unittest.defaultTestLoader.discover("../case", pattern="test*.py")
3. 实例化HTMLTestRunner类,并调用run方法执行测试套件。
with open(报告存放路径, "wb") as f: #注意:生成html报告,必须使用wb,以二进制形式写入
# 实例化HTMLTestRunner类
HTMLTestRunner(stream=f).run(测试套件)
测试脚本:
run_html.py
# 导包
import time
import unittest
from HTMLTestRunner import HTMLTestRunner
# 定义 测试套件
suite = unittest.defaultTestLoader.discover("./", "test02*.py")
# 定义报告存放路径及文件名称
report_dir = r"D:\Learn\autoTest\rescource\report\{}.html".format(time.strftime("%Y-%m-%d %H-%M-%S"))
# 获取报告文件流 并执行
with open(report_dir, "wb") as f:
HTMLTestRunner(stream=f,
title="测试报告",
description="操作系统win11").run(suite)
测试效果:
先在report文件夹里生成了对应的HTML文件
然后在浏览器打开该界面效果: