IntelliJ找不到类路径测试资源
我遇到了一个问题,IntelliJ 13.1.4在运行单元测试时无法在模块的src/test/resources
目录中找到ServiceLoader
文件。
请在回答之前注意我已经完成了以下所有内容:
gradle test
,单元测试运行良好。 src/test/resources
目录被标记为测试资源目录。 (见下面的截图。) build/classes/test/
和build/classes/java
目录,但是既没有build/resources/test/
也没有build/resources/main/
。 还有什么可能导致IntelliJ在这里失败的想法?
显示测试资源文件夹设置的模块配置屏幕截图。
通过创建一个与test
目录(!)平行的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
我遇到了IntelliJ 14的类似问题。尽管在我的资源文件夹中有必要的文件并确保该文件夹在模块设置中被指定为资源,但IntelliJ间歇性地无法将我的文件加载到类路径中。
一种解决方法是在模块设置中添加所需的文件夹作为模块的依赖项。
首先,点击“+”按钮添加一个新的依赖关系。
然后,选择你想添加到类路径的文件夹。
然后选择“类”选项。
一旦完成,重新构建你的模块一次,并希望这应该做的伎俩。
理想情况下,这应该不是问题。 资源文件夹中的所有文件应直接放入类路径中。 但是,每个IDE都有它的怪癖。
我遇到了同样的问题,Junit失败(FileNotFound),因为我的根项目文件夹中有空间。 例如:我的项目/ project1 / ....