IntelliJ 找不到类路径测试资源

2022-08-31 15:14:23

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

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

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

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


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

My Test Resource Folders is correctly set.


答案 1

我设法通过创建一个与目录平行的目录来使其更好地工作(!)。test-resourcestest

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

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

编辑:

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

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

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

答案 2

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

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

enter image description here

首先,单击“+”按钮以添加新的依赖项。

enter image description here

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

enter image description here

然后选择“类”选项。

enter image description here

完成此操作后,请重新构建一次模块,希望这应该可以解决问题。

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


推荐