[英]Pytest can't find files/modules
我已经看过关于此事的几个不同主题,但无法弄清楚如何将其应用于我的情况。 我的测试文件夹中没有 init.py 并且我尝试使用conftest
。 我有一个这样的目录结构:
--app
--app.py
--src
--init.py
--module1.py
--module2.py
--module3.py
--configs
--config.json
--non-default-config.json
--tests
--test1.py
--conftest.py
其中app.py
导入模块 1,然后导入模块 2 和 3(使用import src.module2
)。 我使用以下命令在所有模块文件(和 app.py)中加载config.json
:
with open('configs/config.json') as f:
CFG = json.load(f)
这在我从应用程序目录运行app.py
时有效。 但是,当我运行pytest
(我认为它也应该从 app 目录引用,因为 conftest.py 在 app 目录中)并且它导入 module1(使用import src.module1
)时,它找不到configs/config.json
,但会找到app/configs/config.json
。 我不能使用它,因为它会导致我的应用程序在我运行app.py
时中断。 但是,Pytest 可以从 src 文件夹中找到导入,即使它与 configs 文件夹处于同一级别。
如果我将conftest.py
移到 app 目录之外并使用import app.src.module1
,则此导入成功,但在 module1 中导入 module2 则失败。
我该如何解决这个问题? 有没有更好的方法来构建我的项目?
通过从 app 文件夹而不是从基本目录运行 pytest 解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.