我试图在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'
有人可以为这个问题给我一个很好的解决方案吗?我想保留我的符号链接结构。
答案 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)。而是专注于类名或测试方法的签名。