Der Komponententest mit testNG im Frühling braucht Zeit, um das Projekt zu erstellen

8

Ich habe eine Web-Anwendung im Spring-Boot erstellt. Ich schreibe eine Unit-Tests mit testNG für meine Business-Schicht.

Ich habe die Anwendungsklasse

erstellt %Vor%

Meine Testklassen sehen wie

aus %Vor%

Wenn ich ein Projekt starte, wird die hugh log on console angezeigt und es dauert Zeiten von 20,00 Sekunden für einige kleine Tests. Einige der Anweisungen aus dem Protokoll sind

  

DEBUG o.s.c.i.s.PathMatchingResourcePatternResolver - Verzeichnis suchen   DEBUG o.s.c.a.ConfigurationClassPostProcessor   DEBUG o.s.c.a.ClassPathBeanDefinitionScanner   DEBUG o.s.c.i.s.PathMatchingResourcePatternResolver   DEBUG o.s.f.s.DefaultListableBeanFactory   DEBUG o.a.c.b.converters.ArrayConverter   DEBUG org.dozer.loader.xml.XMLParser   DEBUG org.hibernate.cfg.SettingsFactory   DEBUG o.h.cfg.annotations.CollectionBinder   DEBUG o.h.cfg.annotations.TableBinder   DEBUG o.h.p.w.spi.MetamodelGraphWalker - Besuchsattributpfad: MyEntity   DEBUG o.s.f.s.DefaultListableBeanFactory   DEBUG org.hibernate.SQL

Warum braucht es so viel Zeit? Was muss ich tun?

    
Prashant Shilimkar 27.05.2015, 10:37
quelle

2 Antworten

0

Die Untersuchung:

Die Annotation @SpringBootApplication entspricht den folgenden Annotationen mit Standardattributen:

  1. @Configuration - Gibt an, dass die Klasse eine oder mehrere Methoden @Bean enthält. Spielt zusammen mit @ComponentScan .

  2. @EnableAutoConfiguration - Wird versuchen, Beans zu erraten und zu konfigurieren, die Sie wahrscheinlich benötigen. Dies kann je nach Anwendung zu Leistungseinbußen führen.

  3. @ComponentScan - Konfiguriert das Scannen von Komponenten. Da das Paket nicht definiert ist, erfolgt das Scannen aus dem Paket der Klasse mit dieser Anmerkung.

Ohne weiteren Code ist es nicht möglich, Ihnen eine genaue Schätzung zu geben, aber ich denke, dass die meisten Leistungseinbußen durch die Spring Boot-Initialisierung verursacht werden .

    
Crazyjavahacking 27.07.2015 05:31
quelle
0

Standardmäßig ist der Logging-Level im Spring Boot auf INFO gesetzt, wahrscheinlich haben Sie das geändert? Fügen Sie dies application.properties oder einer anderen benötigten Ebene hinzu (TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF)

logging.level.root = WARN

Wie bereits erwähnt, kann die automatische Konfiguration die Leistung beeinträchtigen. Sie können mit dem Ausschließen einiger Konfigurationen spielen, die Sie nicht benötigen. Hier ist ein Beispiel (zufällige Menge - folgen Sie nicht blind)

%Vor%

für Testklassen würde ich empfehlen,

zu verwenden %Vor%

Sie können Tomcat auch ausschließen, wenn Sie es in Ihren Tests nicht benötigen

%Vor%

und versuchen Sie uns mehr Details zu geben

    
Lenar 19.12.2017 23:58
quelle