2016-11-15 11 views
1

私が提供するスクリプト/コマンドのエラーコードをテストするプログラムがあります。 場合によっては、コマンドラインから無視したい警告エラーコードが返されます(5ではなく0で終了)。私は他のエラーコードが同じものを渡すことを望み、できるだけシンプルにする(1行コマンドを保持する)。bashは特定のエラーコードを無視します(pytestはエラーコード5を警告しません)

pytest || [ $? -eq 5 ]を使用しようとしましたが、これはコマンドからのエラーコード5を無視しますが、実際のエラーコードではなく1以外のエラーコードをすべて1に置き換えます。

私はbashのと私よりも多くの経験を積んだ、誰かが速くI.

いくつかのより具体的な文脈より良い解決策を考え出すことができると思います:

私は私のプロジェクトをテストするためにpytestを使用しています。それらの中には現在のところテストがないものがあり、pytestのデフォルトの動作はそれをエラー(エラーコード5)として扱うことです。私はそのエラーを成功として扱いたいと思います。実際、私はトラビスにそのエラーを成功として脅かすことを望みます。

ありがとうございます!

答えて

2

:トラヴィスがそれを実行したときに何らかの理由でルスランの回答は問題を脱出していたので

pytest ... ; err=$? ; if (($err != 5)) ; then exit $err ; fi 

、およびchepnerの答えはそうです:

exit $(($? == 5 ? 0 : $?)) 
2

適切なステータスをキャッチし、テストし、(再)しなければなりません。算術式の使用

command 
case $? in 
    5) exit 0 ;; 
    *) exit ;; 
esac 
0

を私は次のことをやってしまいましたきれいではない。

関連する問題