python - 尽管在根目录中使用conftest,Pytest导入错误?

标签 python unit-testing pytest

我有以下目录结构:

src 
    \conftest.py
    \dir_A
        \run_A.py
        \test_run_A.py
    \dir_B
        \run_B.py

其中 run_A.py 具有以下代码:

from dir_B import run_B

...

当我从 src 运行 pytest 时,出现错误:

ImportError while importing test module '/home/user/src/dir_A/run_A.py'
...

ImportError: cannot import name 'run_B'

尽管使用了conftest.py,但还是失败了,有什么原因吗?

我想补充一点,从 src 运行 python3 -m dir_A.test_run_A 作为测试效果非常好。

最佳答案

您会发现此链接很有帮助:https://docs.pytest.org/en/latest/pythonpath.html

本质上,当从 src 目录运行这些测试时,pytest 将一直走到 /home/user/src/dir_A/run_A。 py.如果没有任何 __init__.py 文件,它将拒绝走到其他地方,因为它没有意识到它是一个更大的包的一部分。

关于python - 尽管在根目录中使用conftest,Pytest导入错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59743292/

相关文章:

python - flask-restful 中的端点是什么意思

python - py.test : Get expected values for test functions for different fixtures from configuration

python - 更改时间序列数据框中的日期 Python

python - 狮身人面像 : Putting a code segment at the first line of an unordered list item

ruby-on-rails - Rspec2测试before_validation方法

.net - ClientWebSocket 和单元测试

php - 使用 netbeans 和 PHPUnit 测试 php 函数(不是类)

python-2.7 - 如何使 py.test --cov 跳过 virtualenv 目录

Pytest 忽略 pytest.ini 文件

c# - 如何将我的代码从 C# 转换为 Python?