Pytest 找不到 files/modules

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,则此导入成功,但在 module1 中导入 module2 则失败。

我该如何解决这个问题?有没有更好的方法来构建我的项目?

通过 运行 pytest 从 app 文件夹而不是基本目录解决了这个问题。