2

我正在尝试配置我的 IntelliJ Ultimate 2017 IDE 以运行 Python 单元测试。它不工作。

  • 该项目是一个 Gradle 项目,大部分模块是 Java/Scala。虽然有几个 Python 模块。
  • 已安装 Python 插件,并将 Python 方面添加到相应的模块中。
  • Python解释器设置得很好。IDE 实际上可以通过 ctrl 单击操作在代码中移动。
  • 在 'Project Structure' -> ' <mymodule>' -> dependencies 下,解释器和<Module source>都包括在内。
  • 每个 Python 模块都有一个“内容根”。紧随其后的是一个src文件夹,在该文件夹下有一个test文件夹。测试文件夹的内容反映了该src文件夹,除了文件test_前加以避免 Python 名称冲突。
  • 测试配置同时检查了“将源/内容根添加到 PYTHONPATH”选项。解释器被指定。
  • 如果test在模块设置中标记为测试文件夹,我可以右键单击并为该文件夹中的测试“运行测试”。但是, s 发生,因为它在目录中ImportError找不到模块。src
  • 所有适当的地方都有__init__.py文件。
  • IntelliJ 为您提供它正在运行的内容,如果我在命令上运行它,它会起作用,例如:

    python -m unittest discover -s /Users/nathanielford/myrepo/mymodule/src/tests -p test_util.py
    

似乎正在使用的根路径设置为我正在运行的单元测试文件所在的位置:它不用src作路径,因此它找不到要导入的东西。没有明显的地方可以指定这种行为。过去似乎不是这样工作的。

在 IntelliJ 更新之后,这种情况最近开始发生。有可能某些配置变得古怪,需要修复,但我不知道那是什么。也有可能在 IntelliJ 中引入了一些错误,但我也不知道如何识别。我错过了什么?

4

2 回答 2

1

有同样的问题并通过不将测试文件夹标记为已排除但只是将其移出源来解决它。

所以如果结构是:

src
--->package
--->resources
test

在 IntelliJ src 文件夹中标记为 Sources,将 src/resources 标记为 Resources。

您的测试将在 IDEA 中运行。

由于我是 python 新手,我不确定这是否会影响包装。进行构建虽然不会导出测试文件夹。

希望有帮助。

于 2018-03-02T15:12:25.427 回答
0

我有类似的问题:无法导入手动安装的模块。我尝试在 Mac 环境参数和 intellij SDK 中添加类路径,但它不起作用。我的最终解决方案是将模块的类路径添加到运行/调试配置:

打开运行/调试配置并选择您的单元测试类:

运行 --> 编辑配置...

将模块的类路径添加到环境变量: 在此处输入图像描述

于 2018-08-02T03:57:39.580 回答