Ich möchte die Junit-Tests parallel ausführen. Ich stoße auf das folgende ProblemKonsolenausgabe beim Ausführen von Junit-Tests mit ParallelComputer
Diese Tests werden von anderen Teams entwickelt und es gibt etwa 2500 Test-Suiten. Die Tests und das Test-Framework haben überall statische Variablen. Sie wurden so geschrieben, dass sie gut funktionieren, wenn sie eine Suite nach der anderen laufen. Sie laufen nicht einmal ab, wenn ich eine Suite dieser Testsuiten konstruiere und sie ausführe.
Um dieses Problem zu umgehen, habe ich meinen eigenen Test-Runner, der die Testsuite von einem anderen Klassenlader lädt (eine Gruppe von Tests gleichzeitig). Ich mache das in mehreren Threads und rufe die run-Methode von JunitCore aus jedem dieser Threads auf. Das funktioniert gut. Das Problem bei diesem Ansatz besteht darin, dass die Konsolenausgabe gemischt ist.
Ich suche nach einer Lösung für dieses Problem, damit ich die Konsolenausgabe für die Testsuite trennen und sie in eine Datei umleiten kann.
Hier ist eine mögliche Lösung, die ich in Betracht ziehe. Ich könnte die Klassen mit verschiedenen Klassenladeprogrammen laden und das Array der "Klassen" -Objekte dieser Klassen in JunitCore runClasses mit einer Instanz ParallelComputer übergeben.
Hat jemand versucht, Testsuiten mit ParallelComputer auszuführen? Wie wird die Konsolenausgabe gehandhabt?
Haben Sie es versucht zu sehen? Können Sie jedem Testthread eine andere Ausgabedatei bereitstellen? Was bedeutet es, die Tests parallel auszuführen, aber die Ausgabe auf eine einzelne Konsole zu serialisieren/trennen? Es ist nicht klar, was Sie fragen, und Sie haben nicht genug Kontext oder Beweise für die Forschung bereitgestellt. –
Ich habe es noch nicht versucht. Die Tests und die Framework-Ausgabe werden nach stdout ausgegeben (sie können direkt System.out.println oder eine Art Logger verwenden). Unabhängig davon, wie das gemacht wird, sehe ich viele Informationen auf der Konsole, wenn der Test ausgeführt wird. Als ich versuchte, die Tests in Threads auszuführen, wurde die gesamte Ausgabe gemischt. Ich möchte die Konsolenausgabe pro Thread trennen. ParallelComputer soll die Tests parallel ausführen. Aber ich weiß nicht, wie die Konsolenausgabe gehandhabt wird. Meine Frage war, ob jemand das versucht hat und wenn ja, wie wird die Ausgabe von System.out.println gehandhabt. Hoffe das klärt auf. – user3274614