Die JUnit-Startzeit ist langsam

8

Ich arbeite an einem ziemlich kleinen Projekt (in Bezug auf Abhängigkeiten), und jedes Mal, wenn ich einen Komponententest durchführe, dauert es 8 Sekunden, bis die JVM geladen ist, bevor der eigentliche Test in 0.2s ausgeführt wird.

Meine Umgebung:

  • Java 8
  • Spring Tool Suite 3.8.1.RELEASE
  • JUnit 4
  • Windows 8

Ich fürchte, es muss etwas in meiner Umgebung sein, was dazu führt, dass dies so lange dauert, und ich hoffe, dass jemand das schon einmal gesehen hat und die Ursache des Problems und vielleicht eine Lösung gefunden hat? Z.B. Wenn meine PATH -Umgebungsvariable wirklich lang ist, würde das überhaupt eine Rolle spielen? Was passiert genau, wenn ich einen JUnit Test ausführe?

Der eigentliche Test, den ich ausführen möchte, ist:

%Vor%

und die Zielklasse ist:

%Vor%

Ich hoffe, Sie werden mir zustimmen, wenn ich sage, dass das Laden nicht lange dauern wird.

    
kinbiko 18.01.2017, 13:58
quelle

2 Antworten

2

OP hier.

Nach einem Vorschlag im Chat habe ich den Microsoft Process Monitor und nach viel Filterung entdeckte ich, dass die AV-Software Avecto DefendPoint auf meinem Rechner lief und es schien, als wäre dies der Flaschenhals. Wann immer ich einen Test starte, würde es bei ungefähr 25% laufen, was für mich zu zeigen scheint, dass es auf einem einzigen Thread auf einem meiner vier Kerne mit voller Geschwindigkeit läuft. Ich bin nicht der Administrator auf diesem Computer, also konnte ich ihn nicht deaktivieren, um diese Hypothese zu überprüfen, aber im Allgemeinen, wenn andere Leute dieses Problem sehen sollten, überprüfen Sie, ob es Ihre Antiviren-Software sein könnte.

    
kinbiko 19.02.2017, 10:10
quelle
-1

Ein potentieller Grund könnte der sein Komponentenscan und Autowiring von Komponenten während des Startens. Sie können dies begrenzen, indem Sie eine separate config -Datei für Tests erstellen, die den Suchbereich für Komponenten einschränkt, wie erklärt hier .

In der Konfiguration können Sie entweder lazy load Beans <beans default-lazy-init="true"> oder verbinde explizit die Beans (näher erklärt hier )

%Vor%

Dann geben wir in der Testklasse die neue Konfigurationsdatei an:

%Vor%     
Aimee Borda 30.01.2017 06:43
quelle

Tags und Links