【问题标题】:How can pytest find test files without __init__.py in the test folders?pytest 如何在测试文件夹中找到没有 __init__.py 的测试文件?
【发布时间】:2018-06-11 18:46:25
【问题描述】:

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

【问题讨论】:

    标签: pytest


    【解决方案1】:

    Pytest 依赖于神奇的命名来发现测试。理想情况下,您所有的测试文件都必须以test_ 开头,例如,您需要使用test_slow.py 而不是slow.py。测试方法也必须以test_ 开头,例如def test_a():def test_b(): 等。如果满足所有这些条件,则只需在测试文件夹中运行 pytest 即可执行 test discovery 并运行所有发现的测试。

    如果您的文件包含test_前缀,那么您应该将文件名作为显式参数传递,即pytest slow.py

    如果测试方法在一个类中,那么类名 mustTest 开头或在名称中的某处包含Test。如果没有,那么您将必须明确指定类,例如与:

        pytest -s -v slow.py::CreateAndSubmitForm
    

    【讨论】:

    • 这不是我的问题;我遵守所有约定。但对于新手来说仍然有用的信息:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2019-07-14
    • 2020-05-09
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2020-10-26
    相关资源
    最近更新 更多