如何让pytest根据模块名称而不是路径进行发现
How do get pytest to do discovery based on module name, and not path
我正在考虑从 unittest
转到 pytest
。我喜欢做的一件事是从已安装的模块中执行 setup.py install
然后 运行 测试,而不是直接从源代码执行。这意味着我拾取了我忘记包含在 MANIFEST.in
.
中的所有文件
使用unittest
,我可以让测试运行ner通过指定根测试模块来进行测试发现。例如python -m unittest myproj.tests
有没有办法用 pytest
做到这一点?
我正在使用以下 hack,但我希望有一种更简洁的内置方式。
pytest $(python -c 'import myproj.tests; print(myproj.tests.__path__[0])')
使用 pytest,您可以改为指定根测试目录的路径。它将 运行 pytest 能够发现的所有测试。您可以在 pytest good practices
中找到更多详细信息
Tests as part of application section of pytest good practices 表示如果您的测试可在 myproj.tests
、运行:
py.test --pyargs myproj.tests
我正在考虑从 unittest
转到 pytest
。我喜欢做的一件事是从已安装的模块中执行 setup.py install
然后 运行 测试,而不是直接从源代码执行。这意味着我拾取了我忘记包含在 MANIFEST.in
.
使用unittest
,我可以让测试运行ner通过指定根测试模块来进行测试发现。例如python -m unittest myproj.tests
有没有办法用 pytest
做到这一点?
我正在使用以下 hack,但我希望有一种更简洁的内置方式。
pytest $(python -c 'import myproj.tests; print(myproj.tests.__path__[0])')
使用 pytest,您可以改为指定根测试目录的路径。它将 运行 pytest 能够发现的所有测试。您可以在 pytest good practices
中找到更多详细信息Tests as part of application section of pytest good practices 表示如果您的测试可在 myproj.tests
、运行:
py.test --pyargs myproj.tests