繁体   English   中英

Pytest 找不到文件/模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM