In the interest of DRY, I want to define my ContextConfiguration in a parent class and have all my test classes inherit it, like so:
Parent class:
package org.my;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/org/my/Tests-context.xml")
public abstract class BaseTest {
}
Child class:
package org.my;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(inheritLocations = true)
public class ChildTest extends BaseTest {
@Inject
private Foo myFoo;
@Test
public void myTest() {
...
}
}
According to the ContextConfiguration docs I should be able to inherit the parent's location, but I can't get it to work. Spring is still looking for a file in the default location (/org/my/ChildTest-context.xml
) and barfs when it can't find it. I've tried the following with no luck:
I'm on spring-test 3.0.7 and JUnit 4.8.2.
Remove the @ContextConfiguration(inheritLocations = true)
on the child class. inheritLocations
is set to true by default.
By adding the @ContextConfiguration(inheritLocations = true)
annotation without specifying a locations ,you are telling to Spring to extended the list of resource locations by adding the default context which is /org/my/ChildTest-context.xml
.
Try with something like this :
package org.my;
@RunWith(SpringJUnit4ClassRunner.class)
public class ChildTest extends BaseTest {
@Inject
private Foo myFoo;
@Test
public void myTest() {
...
}
}
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