IntelliJ 找不到类路径测试资源

新手上路,请多包涵

我遇到一个问题,IntelliJ 13.1.4 在运行单元测试时无法在模块的 src/test/resources 目录中找到 ServiceLoader 文件。

在回答之前请注意我已经完成了以下所有操作:

  1. 该模块是一个 Gradle 项目,如果我运行 gradle test 单元测试运行良好。
  2. 我过去在 IntelliJ 中成功运行过这个单元测试,它找到了模块。 (也许是早期版本的 IntelliJ?)
  3. 我已经仔细检查了 IntelliJ 模块设置,并且 src/test/resources 目录被标记为测试资源目录。 (见下面的截图。)
  4. 我正在将单元测试类的类加载器的类路径转储到类中;它有 build/classes/test/build/classes/java 目录,但既没有 build/resources/test/ 也没有 build/resources/main/
  5. 我单击了按钮以刷新所有 Gradle 项目。

关于还有什么可能导致 IntelliJ 在这里失败的任何想法?


我的模块配置的屏幕截图,显示了测试资源文件夹设置。

我的测试资源文件夹设置正确。

原文由 Luis Casillas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 506
2 个回答

我设法通过创建一个平行于 test 目录(!)的 test-resources 目录让它更好地工作。

不过,仍然看到间歇性的问题。那时,可以打开 IntelliJ 项目设置并将测试资源定义为 _源_(Gradle 项目将保持不变)。

一定是 IntelliJ 错误,因为我在 Android Studio 中遇到过同样的事情。

编辑:

找到了解决 该问题的方法。

在 Gradle 配置的末尾添加以下内容(并指定您的测试资源路径):

 task copyTestResources(type: Copy) {
    from "${projectDir}/src/test/resources"
    into "${buildDir}/classes/test"
}
processTestResources.dependsOn copyTestResources

原文由 Kristofer Sommestad 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在 IntelliJ 14 中遇到了类似的问题。尽管我的资源文件夹中有必要的文件并确保该文件夹在模块设置中被指定为资源,但 IntelliJ 间歇性地无法将我的文件加载到类路径中。

一种解决方法是在模块设置中将所需的文件夹添加为模块的依赖项。

在此处输入图像描述

首先,点击“+”按钮添加一个新的依赖。

在此处输入图像描述

然后,选择要添加到类路径的文件夹。

在此处输入图像描述

然后选择“类”选项。

在此处输入图像描述

完成后,重新构建您的模块一次,希望这样可以解决问题。

理想情况下,这根本不应该成为问题。资源文件夹中的所有文件应直接放在类路径中。然而,每个 IDE 都有它的怪癖。

原文由 Aditya Satyavada 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题