我遇到一个问题,IntelliJ 13.1.4在运行单元测试时无法在我的模块的ServiceLoader
目录中找到src/test/resources
文件。
在回答之前请注意我已完成以下所有操作:
gradle test
,单元测试运行正常。src/test/resources
目录被标记为测试资源目录。 (见下面的截图。)build/classes/test/
和build/classes/java
个目录,但build/resources/test/
和build/resources/main/
都没有。关于还有什么可能导致IntelliJ在这里失败的任何想法?
我的模块配置的屏幕截图,显示了“测试资源文件夹”设置。
答案 0 :(得分:33)
我设法通过创建与test-resources
目录(!)并行的test
目录来更好地工作。
但仍然看到间歇性的问题。那些时候,可以打开IntelliJ项目设置并将测试资源定义为 source (Gradle项目将保持不变)。
必须是IntelliJ错误,因为我在Android Studio中遇到了同样的事情。
修改强>
我found a workaround来解决这个问题。
在Gradle配置结束时添加以下内容(并指定测试资源路径):
task copyTestResources(type: Copy) {
from "${projectDir}/src/test/resources"
into "${buildDir}/classes/test"
}
processTestResources.dependsOn copyTestResources
答案 1 :(得分:21)
我在IntelliJ 14中遇到了类似的问题。尽管在我的资源文件夹中有必要的文件并且确保在模块设置中将文件夹指定为资源,但IntelliJ间歇性地无法将我的文件加载到类路径中。
一种解决方法是在模块设置中添加所需的文件夹作为模块的依赖项。
首先,点击“+”按钮添加新的依赖项。
然后,选择要添加到类路径的文件夹。
然后选择“课程”选项。
完成后,重新构建一次模块,希望这应该可以解决问题。
理想情况下,这根本不应成为问题。资源文件夹中的所有文件都应直接放在类路径中。但是,每个IDE都有它的怪癖。
答案 2 :(得分:3)
当我遇到同样的问题时,一旦取消标记资源目录作为资源根目录,然后将其再次标记为资源root,它对我有用:
答案 3 :(得分:2)
当存在多模块项目时,IntelliJ倾向于将顶层模块设置为工作目录。如果是这种情况,可以尝试将其更改为子模块目录。
答案 4 :(得分:1)
就我而言,我只是通过maven命令行(即基本的mvn clean install
)运行测试。之后,它在IDEA中起作用。
答案 5 :(得分:0)
我遇到了同样的问题,Junit失败了(FileNotFound),因为我的根项目文件夹中有空格。例如:我的项目/ project1 / ....
答案 6 :(得分:0)
如果您的项目是多行家,但其他答案不起作用,请尝试执行此操作。
更改intellij中的工作目录。右键单击,转到编辑配置,选择要运行的必需的maven项目目录。
答案 7 :(得分:0)