Test :: WWW :: Mechanizeを使用してPerl CatalystベースのWebアプリケーションのテストケースを作成しています::触媒。私はどこかで行き詰まり、変数/ハッシュ値を出力してトラブルシューティングをしたいと考えています。しかし問題は、それがCatalyst Appのコンソールログだけを表示することです。コンソールに変数値を出力するにはどうすればよいですか?触媒$ c-> log-> info($ variable value)のようなものです。Test :: WWW :: Mechanize :: Catalystでテストケースに変数/ハッシュを印刷することはできません
答えて
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::Printerのp
機能を使用することです。これは、Data :: Dumperよりも少し強力で、オブジェクトをうまく表示します。 p
のデバッグ出力もTAPのどこかで終了します。
アプリケーションからのロギングが多く発生すると混乱を招く可能性があるため、Catalystログをオフにすることはオプションです。これを行うには、環境変数CATALYST_DEBUG
を0
に設定してテストを実行します。
$ CATALYST_DEBUG=0 prove -v t/
あなたがテストからあなたのデバッグ出力は、Catalystログに行きたい代わり場合は、コンテキストを取得する必要があります。それはちょっと難しいですが、可能です。コードは、Test::WWW::Mechanize::CatalystとCatalyst::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_ok
とctx_request
の関数で通常のメカテストを行っています。その要求からHTTP :: Responseオブジェクトとコンテキスト$c
を返します。コンテキスト上で->log
を実行すると、デバッグはCatalystログに送られます。私はData :: Printerからnp
を使用しています。これは、Data :: Printerによって生成されたデバッグ情報をSTDOUTに書き出すのではなく、Catalystログに入れることができます。
- 1. Sparkでスタックトレースを印刷することができません
- 2. Mechanizeの印刷
- 3. オプションなしで印刷することができません。
- 4. 角度jsでJSONを印刷します。コンソールで見ることはできますが、同じものを印刷することはできません。
- 5. 私はローカル変数を印刷し、それを返すことはできません(のpython 2.7)EDIT
- 6. 印刷機能で変数を定義することができます
- 7. 印刷を停止できません
- 8. アレイスライスを印刷できません
- 9. 値を印刷できません
- 10. データを印刷できません
- 11. ポップアップダイアログボックスを印刷できません
- 12. '1'を印刷できませんか?
- 13. ディレクトリを印刷できません
- 14. Perl WWW :: Mechanize from文字列変数
- 15. C++で文字列を印刷することができません
- 16. 個別の機能からの変数は、メインで印刷できません
- 17. WWW :: Mechanizeのとイチゴperlの
- 18. この入力テキストボックスは印刷できません
- 19. Regexが印刷できません
- 20. セレンの日付ピッカー値で印刷することができません
- 21. 印刷数は、ここでは、プログラミングに
- 22. は同時に印刷して聞くことができません
- 23. Cでハッシュを印刷する
- 24. Perlでハッシュを印刷する
- 25. WWW :: Mechanize and iteration
- 26. WWW :: Mechanizeと "HTTP ::メッセージの内容はバイトでなければなりません"
- 27. イオン - navbarのタイトルを印刷することができません
- 28. 乗算器3と5を印刷する方法はありますが、印刷乗数15は印刷できません。
- 29. Sinatra:paramsハッシュをマージすることはできません
- 30. F2PYで印刷または書き込みでFortranをコンパイルできません
私は今Catalystにアクセスできません。私は一度これを改訂します。 – simbabque
あなたは私のチャンピオンシンバブキです、-vは魔法をしました。再度ありがとう –
simbabque、とても良い情報を共有してくれてありがとう。 –