Ich versuche, JUnit-Tests parallel unter Verwendung der experimentellen Funktion ParallelComputer auszuführen, jedoch weiß ich nicht, wie man jede der Testklassen vor dem Start der Tests vorinitialisiert.Wie initialisiert man JUnit-Testklassen vor der parallelen Ausführung?
Das klassische Beispiel, wie diese verwendet werden sollen, ist wie folgt (wie in der folgenden GitHub link gezeigt). Wie initialisiere ich für das Beispiel die ParallelTest1
und ParallelTest2
Klassen mit freigegebenen Daten vor dem Starten der parallelen Thread-Tests. Ich konnte dies über Konstruktoren in jeder der Klassen tun, aber ich muss sicherstellen, dass beide Klassen vor dem Start vollständig initialisiert werden. Dieses Problem ist wahrscheinlich nicht spezifisch für die Art und Weise, wie ich den Test parallel durchführen möchte, sondern eher, wie einige spezielle Schlüsselwörter verwendet werden, um zu verhindern, dass initialisierte Objekte gestartet werden, bis sie benötigt werden. Im Idealfall könnte das Beispiel ParallelComputerTest
diese freigegebenen Daten in seinem Konstruktor initialisieren. In diesem Fall könnten die verschachtelten statischen parallelen Testklassen jedoch Zugriff auf diese Instanzdaten erhalten.
public class ParallelComputerTest {
@Test
public void test() {
Class[] cls={ParallelTest1.class,ParallelTest2.class };
//Parallel among classes
JUnitCore.runClasses(ParallelComputer.classes(), cls);
//Parallel among methods in a class
JUnitCore.runClasses(ParallelComputer.methods(), cls);
//Parallel all methods in all classes
JUnitCore.runClasses(new ParallelComputer(true, true), cls);
}
public static class ParallelTest1{
@Test public void a(){}
@Test public void b(){}
}
public static class ParallelTest2{
@Test public void a(){}
@Test public void b(){}
}
}
überprüfen, also gehören die Before & After zum ParallelComputerTest oder zum ParallelTest [n] nach meinem Beispiel. Wenn der erste, wie kann ich diese initialisierten Daten mit den Klassen Instanzen ParallelTest [n] teilen, sobald sie erstellt werden? – johnco3
wenn vor und nach jeder Methodenausführung, die mit '@Test' markiert ist, nicht die statischen ausgeführt werden ... –