PyCharm unittest:在符号链接环境中由“loadTestsFromName”引起的“无法导入测试模块”

时间:2018-01-16 17:33:21

标签: pycharm symlink python-unittest

我试图在PyCharm中运行我的单元测试,我的工作区是一个符号链接(通过ln -s)。我一直得到以下输出:

Testing started at 17:50 ...
<HOME>/.virtualenvs/venv/bin/python <PYCHARM>/helpers/pycharm/_jb_unittest_runner.py --path <PROJECT_ACTUAL_DIR>/module/test_module.py
Launching unittests with arguments python -m unittest <PROJECT_LINKED_DIR>/module/module_test.py in <PROJECT_ACTUAL_DIR>/module

Error
Traceback (most recent call last):
  File "/usr/lib/python3.5/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib/python3.5/unittest/case.py", line 600, in run
    testMethod()
  File "/usr/lib/python3.5/unittest/loader.py", line 34, in testFailure
    raise self._exception
ImportError: Failed to import test module: <PROJECT_LINKED_DIR>/module/test_module
Traceback (most recent call last):
  File "/usr/lib/python3.5/unittest/loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
ImportError: No module named '<PROJECT_LINKED_DIR>/module/test_module'

有人可以为这个问题给我一个很好的解决方案吗?我想保留我的符号链接结构。

1 个答案:

答案 0 :(得分:0)

事实证明问题确实是符号链接结构。特别是使用虚拟路径运行unittest失败:

python -m unittest <PROJECT_LINKED_DIR>/module/module_test.py

使用实际目录时:

python -m unittest <PROJECT_ACTUAL_DIR>/module/module_test.py

然而,PyCharm配置忠实地尝试使用,因为这是我打开项目的地方(参见“运行 - >编辑配置......”)。

不幸的是,我无法为此问题提出一般解决方案。我只是在运行测试时找到了解决方法。

解决方法: 有趣的是,对于PyCharm IDE,运行整个文件test_module.py会引发上面提到的异常,运行测试类和测试本身就可以正常工作。因此,在初始化测试时,请尽量不要点击文件test_module.py的标题(例如,点击STRG + SHIFT + F10)。而是专注于类名或测试方法的签名。