【发布时间】:2019-06-05 14:36:52
【问题描述】:
我正在尝试在命令行中运行单元测试以生成代码覆盖率。我可以很好地从 PyCharm 运行命令,但从命令行运行它不起作用。
测试位于如下所示的测试文件夹中
a/b/c/testing/UnitTest.py
我导入的文件是按格式导入的
from a.b.c.main.classes import MyClass
如果我尝试直接从文件夹运行单元测试,它会告诉我它无法导入模块 a。
我相当肯定 PyCharm 正在解决这个问题,因为我选中了“将内容根添加到 PYTHONPATH”和“将源根添加到 PYTHONPATH”框,但我不知道如何在命令行。
如何修复我的导入使其不需要从根级别运行,或者将内容和源根添加到 PYTHONPATH 以便我可以在命令行中运行?
【问题讨论】:
-
如果我正确理解了这个问题,在测试运行之前
export PYTHONPATH=<full path to the root of your project>应该可以解决问题。 -
你有虚拟环境并且你激活了你的环境吗?如果是这样,通常在项目的根目录中添加
pip install -e .以使其可导入但仍可编辑会很方便。 -
@aikikode,这确实有效,但我们在代码中使用
os.getcwd()。在那里添加 PYTHONPATH 似乎会导致当前目录设置为 root 而不是测试文件夹,这使得很难加载测试中使用的文件。然后测试全部失败,因为目录位于错误的位置
标签: python python-3.x pycharm python-unittest