2016-11-19 2 views
1

Test :: WWW :: Mechanizeを使用してPerl CatalystベースのWebアプリケーションのテストケースを作成しています::触媒。私はどこかで行き詰まり、変数/ハッシュ値を出力してトラブルシューティングをしたいと考えています。しかし問題は、それがCatalyst Appのコンソールログだけを表示することです。コンソールに変数値を出力するにはどうすればよいですか?触媒$ c-> log-> info($ variable value)のようなものです。Test :: WWW :: Mechanize :: Catalystでテストケースに変数/ハッシュを印刷することはできません

答えて

1

proveでテストを実行する場合、すべてのテスト出力を表示するには-vフラグを追加する必要があります。

$ prove -v t/ 

このようにすれば、すべてのTAP出力を使い切ることはありません。

次に、diag from Test::Moreを使用して、TAPにコメントを出力するか、the warn builtinにコメントを出力できます。 (Windowsの場合)、この出力を生成

use Test::More; 

pass 'first test'; 
diag 'this is a diagnostical message'; 

my $res = pass 'another test'; 
warn $res; 

done_testing; 

は:

$ prove -v foo.pl 
foo.pl .. # this is a diagnostical message 

1 at foo.pl line 7. 
ok 1 - first test 
ok 2 - another test 
1..2 
ok 
All tests successful. 
Files=1, Tests=2, 0 wallclock secs (0.02 usr + 0.02 sys = 0.03 CPU) 
Result: PASS 

しかし、私が通常行うことも、警告のようにSTDERRへの書き込みData::Printerp機能を使用することです。これは、Data :: Dumperよりも少し強力で、オブジェクトをうまく表示します。 pのデバッグ出力もTAPのどこかで終了します。

アプリケーションからのロギングが多く発生すると混乱を招く可能性があるため、Catalystログをオフにすることはオプションです。これを行うには、環境変数CATALYST_DEBUG0に設定してテストを実行します。

$ CATALYST_DEBUG=0 prove -v t/ 

あなたがテストからあなたのデバッグ出力は、Catalystログに行きたい代わり場合は、コンテキストを取得する必要があります。それはちょっと難しいですが、可能です。コードは、Test::WWW::Mechanize::CatalystCatalyst::Testの両方を使用すること

use Test::More 
use Test::WWW::Mechanize::Catalyst; 
use Catalyst::Test 'MyApp'; 
use Data::Printer; 

my $mech = Test::WWW::Mechanize::Catalyst->new(catalyst_app => 'MyApp'); 

$mech->get_ok("/"); 

my($res, $c) = ctx_request('/'); 
$c->log->warn(np $res); # this will go to the Catalyst log 

。あなたが同じアプリ名を渡すと、彼らはお互いの道に入りませんし、アプリは一度だけ起動されます。

私はCatalyst :: Testのget_okctx_requestの関数で通常のメカテストを行っています。その要求からHTTP :: Responseオブジェクトとコンテキスト$cを返します。コンテキスト上で->logを実行すると、デバッグはCatalystログに送られます。私はData :: Printerからnpを使用しています。これは、Data :: Printerによって生成されたデバッグ情報をSTDOUTに書き出すのではなく、Catalystログに入れることができます。

+0

私は今Catalystにアクセスできません。私は一度これを改訂します。 – simbabque

+0

あなたは私のチャンピオンシンバブキです、-vは魔法をしました。再度ありがとう –

+0

simbabque、とても良い情報を共有してくれてありがとう。 –

関連する問題