pytest断言
1. == 直接对两端的值进行判断是否一致 1==1
2.assert in 判断值是否在正确范围
def test_jia(self): a='hello' b='a' assert b in a
3.assert 判断值是否正确
def test_jia(self): a='hello' b='a' assert 1==1,'值不正确'
pytest 参数
普通运行用例时通过是无法打印出print的,这个时候需要添加参数打印出日志
-v
打印运行日志信息
-q
打印运行日志(简略)
-S
控制台输入结果
-k
运行包含关键字的用例
pytest -v-k'one' 运行用列名称包含one的用例
pytest -v-k' not one' 运行用列不名称包含one的用例
pytest mark标记
自定义标记
在要标记的方法前输入
@pytest.mark.jia
@pytest.mark.jia def test_jia(self): a='hello' b='e' assert b in a
在运行的时候,pytest -m'jia'
然而在使用自定义标签时,运行会有警告
![0](https://img2020.cnblogs.com/blog/2279622/202112/2279622-20211220165529227-270865883.jpg)
这是因为我么你自定义的标记不被知道是用于什么,我们需要自己新建一个文件
pytest.ini
在项目下新建一个pytest.ini的配置文件,里面如下配置即可。markers=后面是标签名,如有多个,第二个开始要换行,且要缩进,不然还是会warning
[pytest] markers=jia
pytest用例执行后的几种状态
passed 用例通过
failed 用例不通过
error 用列编写问题
xfail --@pytest.mark.xfailed 预期失败
def test_xfailed(): pytest.xfail(reason='该功能正在开发') print('改功能正在调试')
![0](https://img2020.cnblogs.com/blog/2279622/202112/2279622-20211220165529257-1397430716.jpg)
skip 跳过用例不执行
@pytest.mark.skip(reason='此阶段不执行') def test_skip(self): print('此用例跳过')
skipif 有条件的跳过
a=0 @pytest.mark.skipif(a<1,reason='当前a小于1不执行用例') def test_skipif(self): print('满足条件不执行')
![0](https://img2020.cnblogs.com/blog/2279622/202112/2279622-20211220165528664-1935161053.jpg)
测试报告 pytest-html
安装插件
pip install pytest-html
执行命令
pytest --html=生成的路径
![0](https://img2020.cnblogs.com/blog/2279622/202112/2279622-20211220165529226-1788208453.jpg)
![0](https://img2020.cnblogs.com/blog/2279622/202112/2279622-20211220165529253-605902241.jpg)