我正在尝试使用以下结构在pycharm中的项目中运行测试:
root/
tests/
__init__.py
mytest.py
当我将my_settings从 init .py导入mytest.py时,我收到以下错误:
Traceback (most recent call last):
File "/Applications/PyCharm.app/helpers/pycharm/utrunner.py", line 116, in <module> modules = [loadSource(a[0])]
File "/Applications/PyCharm.app/helpers/pycharm/utrunner.py", line 40, in loadSource module = imp.load_source(moduleName, fileName)
File "/Users/user/temp/test/tests/mytest.py", line 2, in <module> from tests import my_settings
ImportError: cannot import name my_settings
我可以使用以下命令运行test:
python -m unittest discover -s tests/
以下是一个示例项目:https://github.com/xcompass/pycharm-broken-test-path
我正在运行pycharm 3.4。
答案 0 :(得分:0)
这对于原始海报来说已经太迟了,但是我和PyCharm有完全相同的问题,并且认为我的解决方案可以帮助那些通过搜索偶然发现的人。
对此问题的一种可能解释是,Python不是从您期望的路径导入的。在ImportError发生的位置上方插入以下行:
# using example module from above
import tests
print(tests.__file__)
现在在pycharm中重新运行测试并检查输出。
您可能会发现,模块的路径是&#34;测试&#34;不是你所期望的。如果是这种情况,删除错误模块应该为您解决。
如果这没有帮助,请通过在错误上方插入以下行来检查python路径是否符合预期:
import sys
print(sys.path)
同时删除路径中的所有构建目录,这样您就不会意外导入坏蛋。
最后,从目录中删除任何* .pyc文件:
find -name '*.pyc' -delete
这最后一个可能不会影响上面的问题,但在重建一个干净的流浪盒之后导致py.test失败。