Im Interesse der DRY möchte ich meine ContextConfiguration in einer übergeordneten Klasse definieren und haben alle meine Testklassen es erben, etwa so:Warum kann mein Test seinen ContextConfiguration-Standort nicht von seinem übergeordneten Element erben?
Übergeordnete Klasse:
package org.my;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/org/my/Tests-context.xml")
public abstract class BaseTest {
}
Kinderklasse:
package org.my;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(inheritLocations = true)
public class ChildTest extends BaseTest {
@Inject
private Foo myFoo;
@Test
public void myTest() {
...
}
}
Nach der ContextConfiguration docs sollte ich in der Lage sein, den Speicherort der Eltern zu erben, aber ich kann es nicht zum Funktionieren bringen. Der Frühling ist noch auf der Suche nach einer Datei im Standardverzeichnis (/org/my/ChildTest-context.xml
) und barfs wenn sie nicht finden können. Ich habe folgendes ohne Glück versucht:
- die übergeordnete Klasse zu machen Beton
- einen Test no-op Hinzufügen zu der übergeordneten Klasse
- eines injizierten Mitglied der übergeordneten Klasse Zugabe als auch
- Kombinationen der oben genannten
Ich bin auf Frühling-Test 3.0.7 und JUnit 4.8.2.
Das war es! Das erinnert mich daran, dass ich deine andere Antwort akzeptieren muss. Du bist offiziell der SO MVP für diese Woche :-) –