Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

spring - @ContextConfiguration fail to load config file in src/test/resources

I've tried to load the spring config file in src/test/resources classpath with the following abstract class:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {

}

I have the applicationContext.xml file in src/test/resources but spring cant load it.

Thank you.

like image 567
robinmag Avatar asked Apr 09 '10 03:04

robinmag


5 Answers

To be precise, it's the content of the test output directory (target/test-classes) that is on the class path, not src/test/resources. But resources under src/test/resources are copied to the test output directory by the resources:testResources goal (which is bound by default to the process-test-resources phase).

Having that said, your code looks fine and resources for the test source code should have been copied either by your IDE or by Maven when running tests and should thus be available on the class path. So there must be something else wrong. I can see that your class is a base class for integration tests. Did you configure anything fancy in your pom? Can you show it?

like image 199
Pascal Thivent Avatar answered Oct 05 '22 16:10

Pascal Thivent


Try by using * so that it can search to your classpath

@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
like image 38
prashant thakre Avatar answered Oct 05 '22 18:10

prashant thakre


There is a reported bug with using the spring-test dependency (includes SpringJUnit4ClassRunner) with versions of JUnit > 4.4.

If you are using a version of JUnit newer than 4.4, trying moving that down to 4.4 and see if it solves your problem.

like image 42
Jesse Webb Avatar answered Oct 05 '22 17:10

Jesse Webb


your application context must be included in classpath and put * :

@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
like image 25
borchvm Avatar answered Oct 05 '22 17:10

borchvm


You seem to be using maven, and trying to run the tests from within eclipse. Check the buil folder (target/test-classes/) for applicationContext.xml. If it is not there, you'd have to build first.

like image 29
Bozho Avatar answered Oct 05 '22 16:10

Bozho