我遇到了一个问题,IntelliJ 13.1.4在运行单元测试时,无法在我的模块的src/test/resources
目录中找到ServiceLoader
文件。
请注意,在回答之前,我已经完成了以下所有工作:
1.该模块是一个Gradle项目,如果我运行gradle test
,单元测试运行良好。
1.我以前在IntelliJ中成功地运行过这个单元测试,它找到了这个模块。(可能是IntelliJ的早期版本?)
1.我已经仔细检查了IntelliJ模块的设置,src/test/resources
目录被标记为测试资源目录。(见下面的屏幕截图。)
1.我在类中转储单元测试类的类加载器的类路径;它具有build/classes/test/
和build/classes/java
目录,但既没有build/resources/test/
,也没有build/resources/main/
。
1.我已单击该按钮刷新所有Gradle项目。
有什么想法,还有什么可能导致IntelliJ在这里失败?
我的模块配置屏幕快照,其中显示了“测试资源文件夹”设置。
9条答案
按热度按时间myzjeezk1#
我通过创建一个与
test
目录(!)并行的test-resources
目录来使它更好地工作。不过,仍然会遇到间歇性的问题。在这种情况下,可以打开IntelliJ项目设置并将测试资源定义为 source(Gradle项目将保持不变)。
一定是一个IntelliJ错误,因为我在Android Studio中经历过同样的事情。
编辑:
我找到了解决此问题的方法。
在Gradle配置末尾添加以下内容(并指定您的测试资源路径):
mefy6pfw2#
我在IntelliJ 14中遇到了类似的问题。尽管我的resources文件夹中有必要的文件,并确保在模块设置中将该文件夹指定为资源,IntelliJ还是间歇性地无法将我的文件加载到类路径中。
一种解决方法是在模块设置中添加所需的文件夹作为模块的依赖项。
首先,单击“+”按钮添加新的依赖项。
然后,选择要添加到类路径中的文件夹。
然后选择“类”选项。
一旦完成,重新构建您的模块一次,希望这应该做的伎俩。
理想情况下,这根本不应该是一个问题。资源文件夹中的所有文件都应该直接放在类路径中。然而,每个IDE都有它的怪癖。
tzdcorbm3#
当我遇到同样的问题时,我曾经 * 取消 * 将资源目录标记为资源根目录,然后再次将其标记为资源根目录:
1.右键单击资源文件夹〉将目录标记为...〉取消标记为资源根目录
1.右键单击资源文件夹〉将目录标记为...〉测试资源根目录
mftmpeh84#
在我的例子中,我只是通过Maven命令行运行测试,IidoEe.一个基本的
mvn clean install
。之后,它在IDEA中工作。xzabzqsa5#
当有多模块项目时,IntelliJ倾向于将顶层模块设置为工作目录,如果是这样,可以尝试将其改为子模块目录。
bvjveswy6#
如果你的项目是多maven和其他答案没有工作,尝试这一个。
更改intellij中的工作目录。右键单击,转到编辑配置,选择您要运行的所需maven项目目录。
fae0ux8s7#
对我来说,
Build -> Recompile
创建了项目结构中描述out
文件夹,然后它就可以找到我类hmae6n7t8#
我最近遇到了junit测试无法在
src/test/resources
目录中找到资源的情况。我有一个流浪的
<packaging>pom</packaging>
在pom.xml
文件和采取它解决了它在我的情况。wooyq4lh9#
我遇到了同样的问题,Junit失败(FileNotFound),因为我的根项目文件夹中有空间。例如:我的项目/项目1/....