Das Skript Teil meiner Travis yml Datei, die wie folgt aussieht:Travis Skript Exit-Code nie versagt, auch wenn es sollte
script:
- ./run_tests.sh
Das Skript selbst macht einige Tests auf Sauce Labs. Wenn das Skript aufgrund von Testfehlern fehlschlägt, wird es immer noch mit Code 0 beendet und der Build wird ebenfalls fortgesetzt. Warum wird das Skript nicht mit einem Fehlercode beendet, wenn ein Test fehlschlägt?
Wenn ich Ausgang den Exit-Code aus dem Ende meiner Skriptdatei, ich 0, wenn ich den Exit-Code in der .travis.yml Datei unmittelbar nach dem Script-Befehl ausgegeben, I 1 erhalten:
echo $?
0
The command "./run_tests.sh" exited with 0.
$ echo $?
1
Sie haben versucht Runnig Skript mit '-e' Bash Option? Es sollte sofort beendet werden, wenn ein Befehl innerhalb des Skripts den Status! = 0 zurückgibt. Siehe: https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html – odradek
Es gibt immer noch dieselben Beendigungscodes zurück ; Ich frage mich, ob es von der Tatsache betroffen sein könnte, dass die run_tests.sh-Tests innerhalb einer if-Anweisung ausgeführt werden. – danielle
Yep, tatsächlich tut es, wenn ein Prozess Exit-Code 1 als Bedingung in einem if ('if; dann etc ...') läuft, wird die Anweisung nur zu false ausgewertet und '-e' Option wird nicht handeln Sie danach. Ich weiß nicht, wie Sie mit der 'else'-Klausel umgehen, aber Sie könnten versuchen, dort eine 'exit 1' hinzuzufügen und zu sehen, was passiert. –
odradek