网站建设无广告,php开发一个企业网站价格,网站建设培训哪里好,网络营销推广的新趋势python内置测试框架
unittest#xff08;xUnit家族成员 参考JUnit#xff09;doctest#xff1a;
假设被测试目标:
def add(a,b):c a breturn c创建一个test_同名的文件夹
基本用法
1 创建测试用例
1 定义TestCase的子类 2 定义test_开头的方法 3 在方法…python内置测试框架
unittestxUnit家族成员 参考JUnitdoctest
假设被测试目标:
def add(a,b):c a breturn c创建一个test_同名的文件夹
基本用法
1 创建测试用例
1 定义TestCase的子类 2 定义test_开头的方法 3 在方法中编写测试代码并断言
from main import add
import unittestclass AddTestCase(unittest.TestCase):#继承TestCasedef test_add(self):#定义test_开头的方法a, b 1, 2c add(a, b) #执行的结果_c 12 #预期的结果assert c _c
点击运行 得到执行结果 但如果是直接点击代码右侧的执行键或者直接运行并不是推荐的方式 推荐代码的方式该方式只执行一次的测试用例
或者直接用命令的方式运行测试框架
python -m unittest该方法可以将多个测试用例同时执行
2 执行测试用例
更推荐命令行的方式执行测试用例
读懂测试结果 下划线是分隔符 分隔符下方为摘要有用例的数量执行的时长。 下方为结果ok表示全部通过FAILED表示没有全部通过可能有失败有出错failures 1
unittest测试发现的规则
搜集所有的可导入模块位于当前的目录或者某个包中筛选test开头的文件在文件找TestCase的子类里氏替换原则
环境的准备和销毁
夹具在每个测试方法之前以及之后执行额外的指令 在有很多个测试用例的时候它们的准备工作可能是重复的
方法级夹具 每个测试方法前后都会执行
setUPtearDown 原来
用夹具
类级夹具 在设置了类级夹具的用例类中每个测试类的前后都会执行1次
setUpClasstearDownClass 模块级夹具 在设置了模块级夹具的用例文件中开始和结束都会执行一次
setUpModule 本模块所有用例前执行tearDownModule 本模块所有 用例后执行
内置的断言方法
assert关键字真 则什么都不发生 假 则引发AssertError 通过方法、函数让断言具有语义性所以需要实现断言方法
断言方法 语义性 封装复杂的断言过程
assertRaises断言 此处要出现异常
用例的筛选
-k参数实现用例筛选如果有多条规则可以重复传递-k参数
通配符模式
一个任意字符*任意个任意字符 这样就只执行名称为*.test_copy的用例
子字符串模式
本质上还是通配符模式是在子字符串前后都加了*
第三方插件
HTMLTestRunner
是unnittest中TextTestRunner子类可以将测试报告生成HTML文件
pip install html-testRunner-df #安装 使用 在入口处不适用默认的testRunner 使用导入的HTMLTestRunner会生成html日志但这样会有多个文件文件名也是自定义的我们可以通过传递参数来修改这些参数
可以修改的参数有如下
也有修改模版的自定义方式jinja2
– 如果用命令行的方式启动需要通过猴子补丁的方式使用HTMLTestRunner 在__init__.py中
green
是unnitest的命令行runner可以生成整齐、美观、多彩、可读性高的命令行测试报告 可以多进程并行执行以文件为单位 自带覆盖率检查 todo
parameterized
ddt