Pytest测试框架(一):pytest安装及用例执行 (2)

Pytest测试框架(一):pytest安装及用例执行

报错停止 # 一旦运行到报错用例就停止运行 pytest -x 文件名 pytest -x test_pytest.py # 当报错达到num的时候就停止运行 pytest --maxfail=[num] 文件名 pytest --maxfail=[num] test_pytest.py

Pytest测试框架(一):pytest安装及用例执行

Pytest测试框架(一):pytest安装及用例执行

失败重新运行

安装 pytest-rerunfailures 插件:

pip install pytest-rerunfailures

测试失败后重新运行n次,在重新运行间延迟n秒再运行:

# 重新运行3次 pytest --reruns 3 -v -s test_pytest.py # 重新运行5次,延迟1s pytest --reruns 5 --reruns-delay 1 -v test_pytest.py

Pytest测试框架(一):pytest安装及用例执行

多条断言

一个方法中有多条断言,通常第一条失败后下面就不执行了,pytest-assume插件可以解决断言失败后继续执行断言的问题。

安装

pip install pytest-assume

执行多条断言:

# 写法1 pytest.assume(x == y) pytest.assume(True) pytest.assume(False) # 写法2 with assume: assert calc(2, 1) == 4 with assume: assert calc(2, 1) == 3 with assume: assert calc(2, 2) == 3

修改测试用例test_pytest.py:

import pytest from pytest import assume def calc(a,b):     return a + b class TestDemo():     def test_answer1(self):                assert calc(1, 1) == 2     def test_answer2(self):   with assume: assert calc(2, 1) == 4 with assume: assert calc(2, 1) == 3 with assume: assert calc(2, 2) == 3 @pytest.mark.answer3            def test_answer3(self):                assert calc(6, 6) == 12 if __name__=='__main__':     pytest.main()

测试结果:

Pytest测试框架(一):pytest安装及用例执行

pytest.main()

除了在终端执行外,也可以通过pytest.main()来执行,pytest.main() 自动查找当前目录下以test_开头的文件或者以_test结尾的py文件。

括号内可传入执行参数,通过[]进行分割,[]内的多个参数通过逗号分割,所有的参数和pytest命令行方式一样:

pytest.main(['-v', 'test_pytest.py']) # 执行test_pytest.py用例

或者直接在测试文件最后写如下代码,执行py文件。

if __name__=='__main__': pytest.main() # pytest.main(['-v', 'test_pytest.py'])

更多pytest执行方法可参考官方文档:

--THE END--

文章标题:Pytest测试框架(一):pytest安装及用例执行
本文作者:hiyo
本文链接:https://hiyong.gitee.io/posts/install-pytest-and-run-test/
欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygyfs.html