2016-05-17 8 views
2

Ich benutze derzeit das Maven-Plugin exec-maven-plugin, um ein Skript auszuführen, dieses Skript startet mehrere Java-Programme entsprechend einer integration test, wenn der Test erfolgreich ist, wird alles ordnungsgemäß durch eine cleanup script später im Build ausgeführt gestoppt.Wie führe ich ein Cleanup-Skript auf exec-maven-plugin aus: exec failure?

Mein Problem ist, wenn der Test fehlschlägt, denn wenn das Plugin exec-maven-plugin ausfällt, stoppt es den Build sofort, so dass mein cleanup script nie aufgerufen wird, was bedeutet, dass meine Java-Programme nie gestoppt werden.

So gibt es eine Möglichkeit, meine cleanup script auszuführen, auch wenn meine integration test fehlschlägt?

Bisher habe ich 1 als successCode meinen Integrationstest, um sicherzustellen, dass meine cleanup script genannt wird, aber es ist nicht gut genug, weil das Build hat einen Build Erfolg gesehen, das nicht der Fall ist.

Irgendwelche Ideen? Hier

Antwort

1

ist, was ich schließlich tat

  1. Ich habe 1 als success code meine integration test, um sicher zu stellen, dass die cleanup script wird immer dann aufgerufen.
  2. I definiert die Eigenschaft outputFile meiner integration test, um die Standard-Ausgabeströme in eine Datei später
  3. Nach meinem cleanup script getestet werden umgeleitet, ich für ein gegebenes Muster in Schritt # erstellt in der Datei überprüfen 2 mit einem Befehl von Geben Sie cat {my-file} | grep {my-pattern} >/dev/null ein, um zu wissen, ob integration test bestanden wurde oder nicht. Wenn das Muster nicht gefunden werden kann, wird der Build fehlschlagen, andernfalls wird der Build übergeben.