pytest如何在测试文件夹中找不到__init__.py的测试文件?

时间:2016-02-03 14:04:40

标签: pytest

根据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的情况下运行我的测试。如何在我的测试文件夹中运行没有它们的测试?

1 个答案:

答案 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