2012-04-02 3 views
0

私はSeleniumRCを運転しており、ページがハングアップするので、Ctrl + Cキーを押してテストをやめ、問題に対処します。私はそうのようなコマンドラインを介してtxtファイルを渡す場合:prove -vを使って死ぬPerlテストを終了すると、結果はSTDOUT経由でテキストファイルに保存されないのはなぜですか?

prove -v some.t :: data.csv > testresults.txt 

...私はどちらかは、「バッチジョブ(Y/N)を終了?」何を取得またはテキストファイルに。コマンドラインから出力用のファイルを渡さないと、結果が期待通りにスクロールされることに注意してください。

-v以外のstdoutを使ってファイルに書き込むオプションがあることが証明されていますか?

$| = 1;のいずれかのフォームにprove.pmまたはsome.tのいずれかを追加すると、この問題は解決されません。私のautoflush設定をオーバーライドしている何かが、ProveやTest :: Harnessにありますか?また、私はこの変化を試してみた

:あなたがバッファリングに苦しんでいるよう prove -v some.t > testresults.txt :: data.csv

答えて

2

が鳴ります。出力はバッファリングされ(端末に送信されない場合)、アプリケーションをCtrl-Cで入力するとそれらのバッファはフラッシュされません。

出力がPerlスクリプトからのものである場合は、$| = 1;を追加してみてください。

+0

Hmm .. 'select(STDOUT)'の後に私のためにこの仕事をすることはできません。 – kyoob

+0

'proove'に追加されましたか? – ikegami

+0

ああ。私はドープです。私がオフィスに戻ったときにもう一度やり直します。 – kyoob

関連する問題