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