测试文件导入错误

ImportError in test files

我见过很多与此类似的问题,但 none 的解决方案对我有用。在我正在开发以自学如何创建 python 包的测试包上尝试 运行 pytest 时出现导入错误。

目前我有一个 python 包看起来像

MyPackage/
  - src/
    - modules/
        - __init__.py
        - module_a.py
  - tests/
    - test_module_a.py

我的 test_module_a.py 包含

import pytest
from modules.module_a import MyClass

# ... some tests

运行终端中的命令pytest显示

ImportError while importing test module '/Users/.../Desktop/MyPackage/tests/test_module_a.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../../anaconda3/lib/python3.8/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/test_module_a.py:2: in <module>
    from modules.module_a import MyClass
E   ModuleNotFoundError: No module named 'modules'

我试图通过 pycharm 解释器添加路径,但尚未修复。我也见过使用 sys 包来更改测试文件中的路径的方法,但我相当确定有一种方法可以在没有它的情况下将测试设置为在 pycharm 中工作。此外,我想准备好通过 github 设置自动测试,因此找出一种与此完美集成的方法是理想的。

错误与环境无关。我遵循的教程在 setup.cfg 中的 name 下放置了一个与模块名称不同的名称,因此将其设置为匹配解决了问题。