我遇到一个问题,IntelliJ 13.1.4 在运行单元测试时无法在模块的 src/test/resources
目录中找到 ServiceLoader
文件。
在回答之前请注意我已经完成了以下所有操作:
- 该模块是一个 Gradle 项目,如果我运行
gradle test
单元测试运行良好。 - 我过去在 IntelliJ 中成功运行过这个单元测试,它找到了模块。 (也许是早期版本的 IntelliJ?)
- 我已经仔细检查了 IntelliJ 模块设置,并且
src/test/resources
目录被标记为测试资源目录。 (见下面的截图。) - 我正在将单元测试类的类加载器的类路径转储到类中;它有
build/classes/test/
和build/classes/java
目录,但既没有build/resources/test/
也没有build/resources/main/
- 我单击了按钮以刷新所有 Gradle 项目。
关于还有什么可能导致 IntelliJ 在这里失败的任何想法?
我的模块配置的屏幕截图,显示了测试资源文件夹设置。
原文由 Luis Casillas 发布,翻译遵循 CC BY-SA 4.0 许可协议
我设法通过创建一个平行于
test
目录(!)的test-resources
目录让它更好地工作。不过,仍然看到间歇性的问题。那时,可以打开 IntelliJ 项目设置并将测试资源定义为 _源_(Gradle 项目将保持不变)。
一定是 IntelliJ 错误,因为我在 Android Studio 中遇到过同样的事情。
编辑:
我 找到了解决 该问题的方法。
在 Gradle 配置的末尾添加以下内容(并指定您的测试资源路径):