私はPythonで記述されたフレームワークを持っています。テストの目的で、基本的にサブプロセス(別名シェル呼び出し)を実行したいのですが...単にRC!= 0で戻ってくるはずです。存在しない実行可能ファイルを呼び出そうとしました。または「exit 1」を実行します。しかし、これらは何らかの理由でFileNotFoundErrorに変換されます。
したがって、戻りコード!= 0をトリガーするために他に何ができますか(「信頼できる」方法で、将来の時点でコマンドが突然0を返さないことを意味します)。
exitというバイナリを「検索」しようと思ったのですが、
> /usr/bin/env exit
/usr/bin/env: exit: No such file or directory
「どちらを終了するか」を実行すると、何も見つかりません。したがって、「exit」はbash関数であると想定しています。サブプロセス呼び出しを実行すると、おそらく利用できませんか?!
—
GhostCat
技術的な問題:ゼロ以外の戻りコードは、質問が示唆するように、悪い状況を示すものではありません。「0」が「何も問題がない」ことを意味するということは、慣例の問題です。実際には、呼び出しプロセスに伝えるための8ビットの情報があります。
—
Jos
@ジョス私はそれを理解しています。しかしポイントは、RC!= 0はsubprocess.check_call()からの特定の例外を引き起こすということです。この条件を適用して、適切に処理されるようにします(実際のテストでRC!= 0の状況が適切に処理されることを確認します)。
—
GhostCat 2015
いかが
—
steeldriver 2015
/bin/false
ですか?
exit 1
将来を見据えた方法です。FileNotFoundErrorは別の原因が原因である必要があります。