Python 在运行单元测试时,Pycharm会查看项目根而不是源根

Python 在运行单元测试时,Pycharm会查看项目根而不是源根,python,python-2.7,unit-testing,pycharm,Python,Python 2.7,Unit Testing,Pycharm,我最近重新安装了PyCharm,但在unittests中遇到导入错误:AttributeError:“module”对象没有属性“src” 我正在PyCharm中使用默认值运行单元测试(只需单击单元测试旁边的run图标) 控制台中显示的unittest命令行告诉我,--target参数正在从项目根目录传递完整路径。它应该是源根目录的路径。项目根目录包含不是包的目录。我已经在出现异常的调试器中确认,我可以从源根目录导入,但不能从PyCharm使用的项目根目录导入 /path_omitted/_jb

我最近重新安装了PyCharm,但在unittests中遇到导入错误:
AttributeError:“module”对象没有属性“src”

我正在PyCharm中使用默认值运行单元测试(只需单击单元测试旁边的run图标)

控制台中显示的unittest命令行告诉我,
--target
参数正在从项目根目录传递完整路径。它应该是源根目录的路径。项目根目录包含不是包的目录。我已经在出现异常的调试器中确认,我可以从源根目录导入,但不能从PyCharm使用的项目根目录导入

/path_omitted/_jb_unittest_runner.py --target path.from.project.root.myunittest.MyClass.test_function ...
详情:

  • 当我在PyCharm中编辑单元测试的配置时,
    工作目录
    是单元测试的正确根源

在pycharm的文件资源管理器中右键单击您的源目录,然后选择“标记为源根目录”,看看这是否能解决您的问题。

内容根目录从主项目根目录更改为我的特定子项目根目录确实可以解决问题。虽然这是一个可接受的解决方案,但我认为它不应该是严格必要的(这不是以前的配置)。我会把这个问题留一小段时间,以防有更好的答案。

它被标记为根。我希望pycharm在它遇到的第一个源代码根处停止,但似乎没有停止。。。很明显,PYTHONPATH(或sys.PATH)中可以有多个源代码。我确实有多个源代码根,但项目的根不包含
\uuuuu init\uuuuuuuuuuupy
(项目跨多种语言),因此无法从项目根导入,pycharm正试图这样做。在重新安装之前,它工作得很好,因此它必须是一个配置错误。虽然这个问题与提议的副本(单元测试与源根问题)略有不同,但它是相同的根本原因,并且与简单地考虑重复是足够相似的。答案在任何情况下都是一样的。