I'm having a problem where IntelliJ 13.1.4, when running a unit test, can't find a ServiceLoader
file in the src/test/resources
directory of my module.
Please note before answering that I've done all of the following:
gradle test
the unit test runs fine.src/test/resources
directory is marked as being a test resources directory. (See screenshot below.)build/classes/test/
and build/classes/java
directories, but neither build/resources/test/
nor build/resources/main/
.Any ideas on what else could be causing IntelliJ to fail here?
Screenshot of my module configuration, showing the Test Resource Folders setting.
find your project or sub-module and click on it to highlight it, then press F4, or right click and choose "Open Module Settings" (on IntelliJ 14 it became F12) click on the dependencies tab. Click the "+" button on the right and select "Jars or directories..." Find your path and click OK.
File class to read the /src/test/resources directory by calling the getAbsolutePath() method: String path = "src/test/resources"; File file = new File(path); String absolutePath = file. getAbsolutePath(); System.
I managed to get it working better by creating a test-resources
directory parallel to the test
directory (!).
Still seeing intermittent problems with this, though. Those times, it's possible to open the IntelliJ project settings and define the test resources as source instead (the Gradle project will remain unchanged).
Must be an IntelliJ bug, as I've experienced the same thing in Android Studio.
EDIT:
I found a workaround to the issue.
Add the following at the end of the Gradle config (and specify your test resources path):
task copyTestResources(type: Copy) { from "${projectDir}/src/test/resources" into "${buildDir}/classes/test" } processTestResources.dependsOn copyTestResources
I face a similar issue with IntelliJ 14. Despite having the necessary files in my resources folder and ensuring that the folder is specified as a resource in the module settings, IntelliJ intermittently fails to load my files onto the classpath.
One workaround is to add the required folder as a dependency for the module in the module settings.
First, click on the "+" button to add a new dependency.
Then, select the folder you wish to add to the classpath.
Then select the "classes" option.
Once that is done, re-build your module once and hopefully that should do the trick.
Ideally this should not at all be an issue. All files in the resource folder should directly be put in the classpath. However, every IDE has it's quirks.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With