IntelliJ Ultimate Unittest引发" ImportError:没有名为&#34的模块;对于待测模块

时间:2017-07-07 18:26:24

标签: python-3.x intellij-idea python-unittest

我的Python 3项目组织如下:

/myproject
  /.venv -> stores virtual environment
  /src
    /common
      __init__.py
      utility.py
    /tests
      /common
        __init__.py
        test_utility.py  --> tests utility.py
      __init__.py
    __init__.py
  requirements.txt

(该项目有更多的文件和测试,我为了简洁而省略了。)

我在IntelliJ IDEA 2017.1.4中设置了这个。一般来说,一切正常。我将src设置为内容根,并指向使用.venv中的python库的虚拟环境,如requirements.txt中所配置。当我在IDE中右键单击test_utility.py并选择'运行Unittests ...'它会按照您的预期执行并运行所有测试,包括成功和失败。如果我右键单击common并选择“运行单位测试...”,也会发生这种情况。但是,如果我右键单击tests并执行相同的所有测试报告:

 ImportError: No module named 'common.utility'

测试运行器报告它正在执行以下操作:

  

使用参数启动unittests python -m unittest discover -s / Users / nford / repos / myproject / src / tests -t / Users / nford / repos / myproject / src / tests in / Users / nford / repos / myproject /的src /测试

如果我在命令行中运行它(虚拟环境打开),它也会失败。但是,如果我运行这个:

  

python -m unittest discover -s / Users / nford / repos / myproject / src / tests -t / Users / nford / repos / myproject / src

成功了。但是,我没有看到告诉IDE这样做的方法。其他测试运行似乎也没有必要。例如,这适用于命令行:

  

python -m unittest discover -s / Users / nford / repos / myproject / src / tests / common -t / Users / nford / repos / myproject / src / tests / common

只有在这个顶层才会出现这个问题,这意味着我无法使用IDE来运行完整的测试运行。

0 个答案:

没有答案