首页 > 解决方案 > 为什么 pytest 在使用 python -m test 运行时取消选择所有测试?

问题描述

我可以通过执行(在 Windows 上)来运行我的测试

pytest .\tests\test_x.py

结果:

================================= test session starts ==================================
platform win32 -- Python 3.8.3, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\......
collected 9 items

tests\test_x.py .........                                                         [100%]

================================== 9 passed in 3.67s ===================================

但是,以下两个命令

pytest -m tests
pytest -m test

得到以下结果。为什么所有测试都被取消选择,而它们可以作为脚本运行?

PS C:\Users\......> pytest -m test
================================= test session starts ==================================
platform win32 -- Python 3.8.3, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\......
collected 9 items / 9 deselected

================================ 9 deselected in 3.78s =================================

标签: pythonpytest

解决方案


您正在使用-m哪些过滤器根据您标记测试的方式运行哪些测试。您是在告诉 pytest 仅运行标记为 的测试@pytest.mark.test

据推测,您没有任何标记为这样的测试。

https://docs.pytest.org/en/stable/example/markers.html#mark-run


推荐阅读