ノーズテストの失敗によりスクリプトが終了する

ノーズテストの失敗によりスクリプトが終了する

現在のブランチをトランクにマージしてプッシュするために、小さなスクリプトを使用しています。nosetests が失敗した場合にスクリプトを失敗させるにはどうすればよいですか?

#!/bin/bash
git checkout $1
nosetests
git checkout master
git merge $1
git push
git checkout $1

答え1

set -eいずれかのコマンドが失敗した場合にスクリプトを終了するには、シェバン行の後に追加します。

#!/bin/bash
set -e
git checkout $1
nosetests

からhelp set

-e コマンドがゼロ以外のステータスで終了した場合は直ちに終了します。

答え2

次のことを試してください。

#!/bin/bash
git checkout $1
nosetests || exit 1
git checkout master
git merge $1
git push
git checkout $1

||の戻りコードをチェックし、ゼロ以外の場合はnosetestsコマンドを実行します。exit 1

別のバリエーションも考えられます。

#!/bin/bash
git checkout $1
if ! nosetests
then
    exit 1
fi
git checkout master
git merge $1
git push
git checkout $1

関連情報