根据pytest good practices doc,您的测试目录中不应该有__init__.py
。
如果删除__init__.py
文件,pytest没有找到任何使用此命令的测试:
PYTHONPATH=../. py.test -m "slow" --color=yes -svv -f tests
(使用sh tests/run_slow_tests.sh
调用)
我是一位经验丰富的pytest用户,但我仍然不知道如何在没有__init__.py
的情况下运行我的测试。如何在我的测试文件夹中运行没有它们的测试?
答案 0 :(得分:0)
Pytest依赖于魔术命名来进行测试发现。理想情况下,您的所有测试文件都必须以test_
开头,例如,您需要使用slow.py
代替test_slow.py
。测试方法也必须从test_
开始,例如def test_a():
,def test_b():
等。如果满足所有这些条件,则只需在测试文件夹中运行pytest
即可执行test discovery并运行所有已发现的测试。
如果您的文件不包含test_
前缀,则应将文件名作为显式参数传递,即pytest slow.py
。
如果测试方法在一个类中,那么类名 must
以Test
开头,或者在名称的某处包含Test
。如果没有,那么你必须明确指定类,例如用:
pytest -s -v slow.py::CreateAndSubmitForm