이것은 내 테스트를 실행하는 곳입니다 travis.yml
.
# Run tests
script:
# Test application in Docker container
- ./tools/docker-test.sh
쉘 스크립트 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에서 전파되지 않는 오류, 셸 스크립트에서 전파되지 않는 오류 또는 Go 테스트가 성공하거나 실패 할 때를 알지 못하는 TravisCI의 문제인지 모르겠습니다.
스크립트가 마지막 명령의 상태 코드와 함께 종료됩니다 docker rm -fv test
.
테스트의 상태 코드를 캡처 한 다음 도커를 정리 한 다음 종료해야합니다.
이 코드 예제는 여기에 있는 약간 다른 질문에서 나왔지만 동일한 솔루션입니다.
#!/usr/bin/env bash
set -e
# Set a default return code
RC=2
# Cleanup
function cleanup {
echo "Removing container"
docker stop test || true
docker rm -f test || true
exit $RC
}
trap cleanup EXIT
# Test steps
docker create -it --name test path
docker start test
docker exec test /bin/sh -c "go test ./..."
RC=$?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다