配置pytest的testpaths时提示找不到tests目录该如何解决?
pytest testpaths配置报错解决方案
错误原因:
你配置的testpaths = tests是指定pytest仅从pytest.ini所在根目录下的tests目录收集用例,而你的项目结构中tests目录分散在各个App子目录下,根目录不存在单独的tests目录,就会触发file or directory not found: tests错误,也自然收集不到任何用例。
适配你的项目结构的配置方案
方案1:显式列出所有App下的tests路径
如果App数量不多,推荐直接把所有tests的相对路径(相对于pytest.ini所在目录)都写入testpaths,既能保证用例收集速度,也不会出现匹配误差:
[pytest] # 示例路径,替换为你实际的App下tests目录路径即可 testpaths = user/tests order/tests payment/tests
方案2:用通配符批量匹配子目录下的tests路径
如果App数量较多逐个填写麻烦,且你使用的是pytest 6.0及以上版本,可以用通配符匹配所有符合规则的tests目录:
[pytest] # 匹配所有一级子目录下的tests目录,要是App存放在更深层级比如src下,可以改为src/*/tests testpaths = */tests
注意事项
- 所有填写的路径都必须是相对于pytest.ini存放目录的相对路径,注意路径大小写和实际文件结构保持一致
- 如果不需要限制pytest的搜索范围,也可以直接删除testpaths配置项,pytest会自动遍历所有子目录搜索符合命名规则的测试用例,只是收集速度会比配置了testpaths稍慢
内容的提问来源于stack exchange,提问作者kiril
相关产品推荐
相关产品推荐

