Ich versuche, die Integrationstests in unserer Umgebung zu beschleunigen. Alle unsere Klassen sind autowired.Federintegrationstest ist langsam mit Autowiring
<context:annotation-config/>
<context:component-scan base-package="com.mycompany.framework"/>
<context:component-scan base-package="com.mycompany.service"/>
...additional directories
Ich habe bemerkt, dass Frühling alle Verzeichnisse oben angegeben ist das Scannen und wiederholt sich dann über jede Bohne und speichert die Eigenschaften jedes einzelnen: In unserer applicationContext.xml Datei haben wir die folgenden definiert. (Ich ging über die DEBUG-Nachrichten von Quelle)
Als Ergebnis nimmt der folgende Test etwa 14 Sekunden laufen:
public class MyTest extends BaseSpringTest {
@Test
def void myTest(){
println "test"
}
}
Gibt es eine Möglichkeit zu faul Last der Konfiguration? Ich habe versucht, default-lazy-init="true"
hinzuzufügen, aber das hat nicht funktioniert.
Im Idealfall werden nur die für den Test erforderlichen Beans instanziiert.
danke im voraus.
Update: Ich hätte dies schon früher gesagt, ich möchte nicht eine Kontextdatei für jeden Test haben. Ich glaube auch nicht, dass eine Kontextdatei nur für die Tests funktionieren würde. (Diese Testkontextdatei würde am Ende alles enthalten)
Damit die Idee, einen separaten Anwendungskontext ist mit (e) für Test (s) ... wenn ich eine test1 Klasse, wo ich verwenden müssen eine andere Bean, ich füge es dem test1-Kontext hinzu und benutze keine Komponenten-Scans. Oder benutze den Komponenten-Scan und versuche, Tests nach Paketen zu erstellen, was Unsinn zu sein scheint. – lisak
Ich dachte darüber nach, aber ich versuchte zu vermeiden, eine benutzerdefinierte Kontextdatei pro Testdatei zu definieren. Wir verwenden diese Tests für partielle Integrationstests (sie müssen die DB treffen). – Tihom