I am having issues running unit tests in intelliJ. I have looked through other forums where people have had similar issues but so far I still haven't been able to get it to work. This is the error:
java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: java.io.FileNotFoundException: class path resource [com/d1/d2/service/ServiceTest-context.xml] cannot be opened because it does not exist
In my test I have:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "ServiceTest-context.xml")
public class ServiceImplTest ....
I have obviously verified that the file exists where it is looking for it in the caused by line. I also read a suggestion to check the output directory and I have verified that it exists there as well. Is there anything else that stands out to you? I can run the tests from the command line using ant but I would like to be able to run individual classes rather than modules.
Project:
IntelliJ_project
src
test
com
d1
d2
otherStuff
...
...
service
ServiceImplTest.java
ServiceTest-context.xml
outputFolder:
test-classes (output folder)
com
d1
d2
service
ServiceImplTest.class
So it turns out I was looking in the wrong directory for the output. The context file does not make it to the output location. How do I get it there?
If this is a multi-module project and your tests do work when run with
mvn test
but config file can't be found by IDEA, try this:
in test class, change your configuration to:
@ContextConfiguration("file:test/com/d1/d2/service/ServiceTest-context.xml")
This configuration worked for me (and is also used by spring-mvc-showcase).
Try this solution, it works for me:
Put ServiceTest-context.xml
into the src/test/resources
folder.
Add these lines to the build
section of your pom:
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
Reimport Maven project and run your individual tests.
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