【问题标题】:unittest working in PyCharm but unable to run from command lineunittest 在 PyCharm 中工作但无法从命令行运行
【发布时间】: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


【解决方案1】:

试试这个:

cd project_dir
python -m unittest -v a/b/c/testing/UnitTest.py -k your_test_name

-v 用于单元测试详细日志输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 2022-10-15
    • 1970-01-01
    • 2015-04-18
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多