我的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来运行完整的测试运行。