Ich schreibe den Integrationstest, der während seiner Arbeit mehrere Server startet. Ich muss sicher sein, dass sie nach dem Test in jedem möglichen Fall heruntergefahren werden, einschließlich des manuellen Teststops mit IDE. Gibt es einen Weg, dies zu erreichen?Wie führe ich die Logik nach dem Test manuell aus?
0
A
Antwort
1
Sie können fast jeden Stopp/halt Szenario decken durch einen Shutdown-Haken Registrierung:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
System.out.println("Gracefully shutting down the application/test");
}
});
jedoch, wenn jemand ein kill -9
ausgeben, dann nicht einmal die shutdownHook erfassen werden, da dieses Signal vom Betriebssystem behandelt wird Dadurch wird der Prozess abgebrochen/abgebrochen, ohne dass die Steuerung erneut an ihn gesendet wird.
1
Eine gute Wahl ist ein Shutdown-Hook innerhalb einer benutzerdefinierten JUnit runner zu verwenden, zum Beispiel wie folgt:
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
public class MyRunner extends BlockJUnit4ClassRunner {
public MyRunner(Class<?> klass) throws InitializationError {
super(klass);
Runtime.getRuntime().addShutdownHook(new Thread("app-shutdown-hook") {
@Override
public void run() {
// Your code here
System.out.println("End of test");
}
});
}
}
Dann verwenden Sie diesen Läufer Ihre Tests auszuführen:
@RunWith(MyRunner.class)
public class MyTest {
@Test
public void test() {
System.out.println("My test");
}
}
Verwandte Themen
- 1. Wie führe ich die Test-Methode durch eine Testaufgabe aus?
- 2. Wie führe ich eine Aufgabe nach dem AssemblyRelease aus?
- 3. Abbyy und Informatica Wie führe ich manuell eine Datei aus?
- 4. Wie führe ich Kommandozeilenbefehle aus dem Code
- 5. Wie führe ich die Funktion einmal aus?
- 6. Wie führe ich einen einzelnen Scala-Test mit Coverage aus?
- 7. Wie führe ich Funktionen aus dem Hauptfenster aus?
- 8. IOS- Wie führe ich die Funktion nach dem Ende der Strecke in objective-c aus?
- 9. Wie führe ich das Init-Skript nur einmal nach dem Andocken aus, aber vor dem Einsprungpunkt?
- 10. Wie führe ich einen Python Unit Test mit dem Atom Editor aus?
- 11. Wie starte ich UIPickerView manuell aus dem Code?
- 12. Wie führe ich Logik nur aus, wenn ein Element sichtbar ist?
- 13. WiX: Wie führe ich einen Befehlszeilenbefehl nach der Installation aus?
- 14. Wie führe ich `f2py` aus?
- 15. Wie führe ich TopoJSON aus?
- 16. Wie führe ich Logik auf Optional wenn nicht vorhanden?
- 17. Wie führe ich eine JavaScript-Anwendung auf dem Server aus?
- 18. Wie führe ich eine Datei nach der Kompilierung aus?
- 19. Wie führe ich etwas nach subscribe in Winkel aus?
- 20. Wie führe ich den Befehl xmla auf dem iccube aus?
- 21. Wie führe ich die Hauptklasse im Testordner aus?
- 22. Wie führe ich Tests mit VS2015 aus der Ferne aus?
- 23. Tensorflow: Wie führe ich die Zusammenfassung aus, ohne auszulösen?
- 24. Wie führe ich einen Task aus?
- 25. Wie führe ich die URL im Codezeichner aus?
- 26. Wie führe ich einen Test aus einer großen TestNG-Suite mit testng.xml aus?
- 27. Bamboo: Wie führe ich eine Logik aus, wenn der Job abgebrochen wird oder fehlschlägt?
- 28. Wie führe ich die Hauptmethode einer Android-Aktivitätsklasse aus?
- 29. Wie führe ich dnx xunit test über die Kommandozeile für ein anderes Framework aus?
- 30. Wie führe ich JavaScript aus einem iMacro-Skript aus?