1
這是我正在我的測試中travis.yml
:TravisCI生成成功,即使試驗失敗
# Run tests
script:
# Test application in Docker container
- ./tools/docker-test.sh
shell腳本docker-test.sh
看起來是這樣的:
#!/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
的TravisCI構建是成功的,即使如果測試失敗。
我怎樣才能讓TravisCI知道測試是否失敗?我不知道這是否是錯誤不會從Docker傳播出去,錯誤不會從shell腳本傳播,或者TravisCI不知道何時測試成功或失敗。
你爲什麼搬出去清理一個函數?那是必要的還是隻是一種風格偏好? – user1283776
爲什麼你在docker stop test和docker rm -f test中放置括號?我知道這些命令然後運行在一個子shell中。這樣做的好處是什麼? – user1283776
清理功能無論哪一步失敗,docker都會通過'trap'清理。 – Matt