私はロボットのフレームワークを介し失敗し、私に13コマンドのロボットフレームワークの終了ステータスが間違っていますか?
の誤った終了ステータスを与えているロボットのフレームワークを介してリモートコマンドを実行しようとしている。しかし、我々はこれを手動で実行する場合TTman.sh
の終了ステータスは、実際のパスで112あります(標準の戻りコードではありません)。
ここで何か間違っていますか?
私はロボットのフレームワークを介し失敗し、私に13コマンドのロボットフレームワークの終了ステータスが間違っていますか?
の誤った終了ステータスを与えているロボットのフレームワークを介してリモートコマンドを実行しようとしている。しかし、我々はこれを手動で実行する場合TTman.sh
の終了ステータスは、実際のパスで112あります(標準の戻りコードではありません)。
ここで何か間違っていますか?
あなたはrobotframeworkからおそらく実際には、あなたが実行から得ているRC 13リモートコマンドのリモートでコードがされて取得されていません - 実行完了時にそのRCは、失敗した場合の数です。私。あなたがこれを観察したとき、13の症例は失敗していたはずです。
コマンドのリターンコードを取得するには、このケースでいくつかの変更が必要です。これは半最後の行は、以下の説明で、のようになります方法です。
${rc}= Execute Command your_command_from_the_question &>/dev/null; echo $?
まず、あなたのコマンド(STDOUT &標準エラー出力)のすべての出力では、/ dev/nullにリダイレクトされる - それを返さないように。次に特殊な文字列$?
が出力されます。最後に実行されたコマンドのRCを保持します(ほとんどの* shバリアント、bashなど)。
最後に、その値は${rc}
robotframework変数に格納されています。その場合は、さらに必要なチェックを行うことができます。
このアプローチには欠点があります。標準エラーが隠されているため、コマンドの実行中にエラーが発生することはありません。しかし、そうでなければ、希望の値を得るために、{rc}
varの処理をさらに必要としていたRCにインタリーブされます。必要な場合(失敗した場合はstderr出力)、それに応じて変更してください。
P.S.質問のソースのスクリーンショットを追加しないでください。テキストバージョンよりもはるかに使い勝手が悪いです。
どのコマンドが間違った終了ステータスを示していますか? –
@BryanOakley 'TTman.sh'を手動で実行すると' 112'が返されますが、 'robotframework'は常に' 13'を返します。 –