Pytest支持命令行运行所选择的测试用例
1.运行某文件下的所有测试
pytest test_sample.py
2.运行某目录下的所有测试文件
pytest somepath/
3.运行与关键字匹配的测试
pytest -k “stringexpr”
4.根据节点id运行测试
每个测试用例都被分配了唯一的节点id,id是根据指定的模块名、类名、函数名和参数组成的,由符号::进行分隔。
指定执行一个模块中(也就是一个.py)的函数测试:
pytest test_mod.py::test_func
指定一个方法运行测试,需要提供模块名-类名-方法名
pytest test_mod.py::TestClass::test_method
5.根据标记运行测试
pytest -m slow
运行所有装饰器带@pytest.mark.slow装饰的测试。
6.从包中运行测试
pytest —pyargs pkg.testing
导入pkg.testing并且用其文件系统位置找到且运行测试。
运行完测试,pytest支持显示一个简短的测试摘要信息,执行时可加-r。可以在大型测试套件中容易的得到所有失败、跳过等状态结果的清晰图片。
-r后可加不同的选项字符,控制显示的结果信息
f - failed
E - error
s - skipped
x - xfailed
X - xpassed
p - passed
P- passed with output
如果只有-r没有其他选项,默认fE,显示failed与error的用例结果。
如只显示failed与skipped的测试用例结果,可执行:
pytest -rfs
用p列出通过的测试,P列出通过且捕获到输出的测试。
pytest -rpP
python代码可直接调用pytest:
pytest.main()
此命令与从命令行调用“pytest”一样。它不会引发SystemExit,而是返回exitcode。
也可以传入选项和参数:
pytest.main(['-q','-s','pytest1'])