Dies ist, wo ich meine Tests leite in travis.yml
:TravisCI Build erfolgreich, auch wenn Tests fehlschlagen
# Run tests
script:
# Test application in Docker container
- ./tools/docker-test.sh
Das Shell-Skript docker-test.sh
wie folgt aussieht:
#!/usr/bin/env bash
githash="$(git rev-parse --short HEAD)"
echo "-------------------------------------------------"
echo "| Running unit tests |"
echo "-------------------------------------------------"
docker create -it --name test eu.gcr.io/test/test:$githash
docker start test
docker exec test /bin/sh -c "go test ./..."
docker stop test
docker rm -fv test
Der TravisCI Build ist ein Erfolg auch wenn die Tests fehlschlagen.
Wie kann ich TravisCI dazu bringen zu erfahren, ob der Test fehlgeschlagen ist oder nicht? Ich weiß nicht, ob dies ein Problem mit Fehlern ist, die nicht von Docker übertragen werden, Fehler, die nicht vom Shell-Skript weitergegeben werden, oder TravisCI, die nicht wissen, wann Go-Tests erfolgreich sind oder fehlschlagen.
Warum haben Sie die Bereinigung in eine Funktion verschoben? War das notwendig oder nur eine Stilvorliebe? – user1283776
Warum haben Sie Klammern um Docker Stop Test und Docker rm -f Test? Ich verstehe, dass diese Befehle dann in einer Subshell ausgeführt werden. Welchen Vorteil hat das? – user1283776
Die Aufräumfunktion ist so, egal was für ein Schritt fehlschlägt, der Docker wird danach über die 'Falle' aufgeräumt. – Matt