1

簡単なPerlテストケースを書きました 例:

use Test::More;
is(2 + 4, 5, "Addition check"); 

画面上の出力:

Failed test 'Addition check'
at t/simpel_perl_test.t line 2.
got: '6'
expected: '5'

ログファイルと画面にメッセージを出力したいですか?

既存の Perl モジュールIO::Teeを使用<test case name>.tして要件を満たすことができません。

Perl テスト ケースの画面とログ ファイルにメッセージを書き込む方法を教えてください。

使用したコマンド:

prove -r --timer t/simpel_perl_test.t :: -d 
4

1 に答える 1

1

IO::Captureモジュールは、テスト実行中にこれを行うために正確に作成されまし。を読むことから始めIO::Capture::Overviewます。ただし、代わりにテスト ハーネスの出力をファイルに送信する必要があるようです。proveファイルに書き込むことができるフォーマッタ引数を提供したいかもしれません。ファイルを ingしてprove呼び出しをフォローアップできます。TAP::Formatter::Filecatモジュールを引数として試してみてください。ただし、ファイルの名前がどのように付けられるかは簡単にはわかりません。

teeこれにはコマンドを使用するのが最善ではないでしょうか?

$ prove -r --timer simple_perl_test.t :: -d |tee simple_perl_test.txt
[02:08:12] simple_perl_test.t .. ok       24 ms ( 0.00 usr  0.00 sys +  0.02 cusr  0.00 csys =  0.02 CPU)
[02:08:12]
All tests successful.
Files=1, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.02 cusr  0.00 csys =  0.05 CPU)
Result: PASS
$ cat simple_perl_test.txt 
[02:08:12] simple_perl_test.t .. ok       24 ms ( 0.00 usr  0.00 sys +  0.02 cusr  0.00 csys =  0.02 CPU)
[02:08:12]
All tests successful.
Files=1, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.02 cusr  0.00 csys =  0.05 CPU)
Result: PASS
$
于 2016-05-02T08:18:57.713 に答える