通常,pytest使用命令pytest调用(参见下面调用pytest的其他方法)。这将在当前目录及其子目录中名称遵循test_*.py或*_test.py形式的所有文件中执行
所有测试。更一般地说,pytest遵循标准的测试发现规则。
Pytest支持几种运行和选择测试的方法
class TestMyClass:
def test_something(self):
pass
def test_method_simple(self):
pass
collected 2 items / 1 deselected / 1 selected
test_jiao.py . [100%]
==================================================================================================== 1 passed, 1 deselected in 0.02s =====================================================================================================
pytest test_mod.py::test_func
pytest test_mod.py::TestClass::test_method
pytest -m slow
import pytest
class TestMyClass:
def test_something(self):
pass
@pytest.mark.slow
def test_method_simple(self):
pass
pytest --version # 显示测试是从哪里导入的 pytest --fixtures # 显示可用的内置函数参数 pytest -h | --help # 显示有关命令行和配置文件选项的帮助
要获得超过1.0秒长的最慢的10个测试持续时间的列表:pytest --durations=10 --durations-min=1.0
默认情况下,pytest不会显示测试时间太小(<0.005s)的持续时间,除非在命令行上传递-vv。
(1)使用插件
您可以使用-p选项在命令行中显式地早期加载插件(内部和外部):
pytest -p mypluginmodule pytest -p pytest_cov
(2)禁用插件
要在调用时禁用加载特定的插件,请使用-p选项和前缀no:
pytest -p no:doctest
python -m pytest [...]
retcode = pytest.main()
retcode = pytest.main(["-x", "mytestdir"])
import pytest
import sys
class MyPlugin:
def pytest_sessionfinish(self):
print("*** test run reporting finishing")
if __name__ == "__main__":
sys.exit(pytest.main(["-qq"], plugins=[MyPlugin()]))
C:\Users\mc\Desktop\python>python tiaoce.py
*** test run reporting finishing