如何让pytest根据模块名称进行发现,而不是路径

时间:2018-03-19 12:57:22

标签: pytest

我正在考虑从unittest转移到pytest。我喜欢做的一件事是做setup.py install然后从已安装的模块运行测试,而不是直接从源代码运行。这意味着我会收到我忘记包含在MANIFEST.in中的所有文件。

使用unittest,我可以让测试运行器通过指定根测试模块来进行测试发现。例如python -m unittest myproj.tests

有没有办法用pytest执行此操作?

我使用了以下黑客攻击,但我希望有一种内置的清洁方式。

pytest $(python -c 'import myproj.tests; print(myproj.tests.__path__[0])')

2 个答案:

答案 0 :(得分:0)

使用pytest,您可以改为指定根测试目录的路径。它将运行pytest能够发现的所有测试。您可以在pytest good practices

中找到更多详细信息

答案 1 :(得分:0)

Tests as part of applicationpytest good practices部分表示,如果您的测试在myproj.tests处可用,请运行:

py.test --pyargs myproj.tests