pytest
安装
pip install pytest
pip uninstall pytest
where pytest
pytest --help
创建新项目
使用虚拟环境:确保每个项目都有单独的一份运行环境
<备注>venv目录不要动,venv目录存放的是项目使用的库文件。
本地环境:所有项目共享一份环境
安装环境
File – Setting
搜索 pytest 进行安装
修改下载地址: https://pypi.tuna.tsinghua.edu.cn/simple/
下载完成后
pytest使用
test.py
函数名以test开始
使用pytest 执行的时候 会被pytest自动识别为测试用例
def test_01():
assert 1==1
assert 0
def test_02():
assert 2==1, "期望结果与实际结果应该一致"
单独执行1个测试用例
pytest -v test.py::test_01
单独执行pytest 命令时,pytest会在当前目录下查找以 test_开头或者以_test结尾的py文件中的 测试用例。
跟文件或目录直接执行
pytest test.py test1.py
运行参数
pytest -v test.py
-v : 显示详细日志
test1.py::test_01 PASSED
test1.py::test_02 FAILED
-k表达式
符合表达式条件的函数都会被执行
or 或者 执行 test_01 或者test02
pytest -v -k "test_01 or test_02" testcases
pytest -v -k "test" testcases\test_1.py
-m 标记执行
执行带有 webtest 标记的所有测试函数
执行 不带有 webtest 标记的所有测试函数
pytest -v -m "webtest"
pytest -v -m "not webtest"
–colltect-only只显示要运行的用例 但是不会去执行
常用来查阅自己设计的测试场景是否符合预期。
pytest -v -m "not webtest" --collect-only
-x 快速失败,当执行过程中出现第一个error或者failed 后续则不再执行
pytest -v -x testcases
–maxfail 最大出错次数
pytest -v --maxfail=3 testcases
-s 显示test 函数中print信息
pytest -v -s testcases\test_1.py::test_01
–lf 只显示失败的场景
pytest -v --lf testcases\test_1.py
-q 查看简略的报告信息
pytest -q testcases\test_1.py
类中定义测试方法
testcases\testclass.py
class TestA:
"""Test 命名规范 : 首字母大写"""
def testa(self):
assert True
def testb(self):
assert True
class testb:
"""Test 命名规范 : 首字母大写 小写的的话不会被自动识别"""
def testa(self):
assert True
def testb(self):
assert True
执行命令
pytest -v testcases\testclass.py
运行结果 只能自动运行 TestA中的方法
testcases/testclass.py::TestA::testa PASSED
testcases/testclass.py::TestA::testb PASSED
如果要运行 testb 类中的测试方法, 应该如何设置?
将testb 重命名为 Testb ,执行
pytest -v testcases\testclass.py::TestB
<备注> calss测试类一定是Test开头,大写T
-k 表达式
class TestA:
"""Test 命名规范 : 首字母大写"""
def testa(self):
assert True
def testb(self):
assert True
class Testb:
"""Test 命名规范 : 首字母大写 小写的的话不会被自动识别"""
def testa_testb(self):
assert True
def testb(self):
assert True