2012-03-06 9 views
1

不幸最後である場合は、コマンドライン、またはSTDOUT--outオプションを指定した場合、キュウリフォーマッタがファイルのどちらかになります、単一のIOオブジェクトを、取るキュウリ失敗シナリオを標準エラー出力にリダイレクトするにはどうすればよいですか?

+0

これは、テストの失敗を出力しています。キューブ自体の実行中に発生したエラーではないため、stderrに送信するのは間違いです。 –

+0

テストツールの 'エラー'の概念は通常よりも複雑ですが、これを考慮してください:いくつかの機能/テストが失敗したキュウリまたはrspecがシェルに '1'値で終了したとき。これは、シェルに「エラー」を通知します。 – eolo999

答えて

1

...すべてがstdoutに行くようですまたはフォーマッタのみを指定します。

キュウリのシナリオは部分的に失敗する傾向がありますが、障害が発生する前に最初の数ステップが経過しているため、STDOUTに書き込む情報を正確に検討する必要があります。

さまざまなIOストリームに異なるビットの情報を書き込むカスタムキュウリフォーマッタを確実に作成することができます。組み込みフォーマッタを見れば、どのように動作するのかはかなりわかります。 Andrew Marshallがコメントで指摘したように、実際にstderrを正しく使用するわけではありません。

+0

ここにもあてはまる以前の回答にコメントを投稿しました:いくつかの機能に失敗したときにキュウリがシェルに「1」を返すのはなぜですか? – eolo999

+0

興味深いことに、私が最近、キュウリを正しく実行できなかった(起動時にクラッシュした)と、正常に実行されたが失敗したテストとを区別する方法を見つけようとしていたため、本当に可能です!しかし、あなたの質問に答えるには、テストが失敗したときにゼロ以外の終了コードを返すテストツールの標準があります。ビルドランナーが失敗したテストを検出し、ビルドに失敗するかどうかを知る方法です。 –

+0

正確に。私の質問の起源は、私が継続的な統合ボットのために書いたたくさんのスクリプトから来ています。明らかに、キュウリが「1」の値で終了すると、devsに電子メールを送信します。私がしたかったのは、関連しない出力を除外して、失敗したシナリオについてのみdevsの情報を送ることでした。 ['キュウリのクラッシュ'に関しては、0または1とは異なる終了値(CIツールを破らない)を持つ方がいいでしょう。クラッシュの場合は '1'、失敗の場合はもう1つの非ゼロ値シナリオ。しかしそれは別の話です。]とにかくあなたの答えをありがとう。 – eolo999

関連する問題