Maven Surefire: Die parallele Testausführung kann nicht forciert werden

8

mit Maven todsichere, ich bin nicht in der Lage, parallel Testausführung Gabel. Das heißt, jeder meiner Testfälle muss in einer sera- paten JVM laufen, daher die Gabelung. Außerdem möchte ich, dass meine Testfälle parallel laufen. Der erste Teil funktioniert ohne Probleme: Ich kann jeden Testfall in einer eigenen JVM ausführen. Der zweite Teil ist jedoch immer noch eine Herausforderung für mich. Es ist mir nicht gelungen, die parallele Ausführung von Testfällen zu erreichen. So sieht meine Plugin-Deklaration aus:

%Vor%

Ich habe beide Methoden und Klassen ausprobiert, aber keine Parallelisierung gesehen. Meine JUnit-Version ist 4.7, wie die Abhängigkeitsdeklaration zeigt:

%Vor%

Jede Hilfe wäre sehr geschätzt.

Gregoire.

    
Gregoire 30.08.2010, 11:59
quelle

8 Antworten

7

Ich denke, dass Sie die threadCount Parameter bei Verwendung des Modus parallel :

%Vor%     
Pascal Thivent 30.08.2010 22:25
quelle
4

Ich hatte das gleiche Problem, weil ich die Version 2.7 von surefire verwendet habe, nach dem Upgrade auf 2.12 hat es mit der folgenden Konfiguration funktioniert:

%Vor%

Es hat 4 Threads hervorgebracht, von denen jeder sein eigenes jvm hat.

    
Leo Gamas 05.07.2012 14:21
quelle
2

Stellen Sie sicher, dass Sie eine Protokollmeldung in etwa erhalten

%Vor%

Kurz vor dieser Überschrift:

%Vor%

Diese Nachricht zeigt an, dass der parallele todsichere Junit-Provider aktiv ist.

Wenn dies nicht der Fall ist, könnte todsichere Version eine andere Version von junit aufnehmen, als Sie denken. Alles unter 4.7 wird nicht funktionieren. Führen Sie mvn dependency: tree aus, um zu prüfen, welche Version (en) vorhanden sind.

Sie sollten auch auf todayfire 2.6 upgraden, da einige kleinere Fehler im Zusammenhang mit der parallelen Ausführung behoben wurden. Aus dem gleichen Grund sollten Sie das neueste Junit verwenden.

    
krosenvold 31.08.2010 10:10
quelle
1

Der Parallelmodus von Surefire ist extrem fehlerhaft. Siehe zum Beispiel Ссылка und Ссылка

Ich habe es nicht geschafft, einen einzigen Test parallel laufen zu lassen (ganz zu schweigen von Gabelung).

    
Gili 16.06.2011 04:27
quelle
1

Versuchen Sie, Ihren forkMode von immer auf "nie" zu ändern. Es gibt dies nicht in ihrer Dokumentation an, aber Sie können zu diesem Zeitpunkt nicht gleichzeitig fork plus parallel sein (wir fanden das nach dem Durchforsten des todsicheren Codes.)

Nur damit Sie wissen, werden Sie wahrscheinlich Tests durchführen, die nicht threadsicher sind, da viele Test- / unterstützende Bibliotheken (easymock, powermock, etc.) die Fähigkeit zur Parallelisierung Ihrer Tests ungültig machen.

    
MegaMan 15.09.2011 06:49
quelle
0

Bist du sicher, dass es nicht funktioniert? Sie können nicht viel beschleunigen, wenn Ihre Tests nicht viele Testmethoden enthalten. Mit forkMode = immer das Beste, was Sie tun können, ist alle Testmethoden innerhalb einer Klasse parallel auszuführen.

    
Mark Renouf 24.02.2011 22:59
quelle
0

Legt ein Attribut TestNG nicht parallel fest? demzufolge: Ссылка

    
Samuel Tian 09.10.2012 08:00
quelle
0

Die todsichere 2.16 hat die parallele Ausführung bezüglich der JUnit-Tests korrigiert.

    
tibor17 08.09.2013 11:55
quelle