2

私は Phpunit を初めて使用し、偶然にも (2012 年 9 月現在) まったく新しい phpunit 3.7.0 をインストールしました (私の phpunit インストールは git チェックアウトであるため、実際には 3.7.1 と表示されます)。

私が欲しいのは、diag()関数またはnote()perl のTest::Moreモジュールの関数と同じように、phpunit テスト クラスで同じことを行う、テスト対応の「echo」キーワードまたは printf 関数です。

診断する

diag(@diagnostic_message);

テスト出力に干渉しないことが保証されている診断メッセージを出力します。print @diagnostic_message と同様に、単純に連結されます。

ノート

    note(@diagnostic_message);

diag() と同様ですが、ハーネスでテストを実行するとメッセージが表示されない点が異なります。これは、冗長 TAP ストリームでのみ表示されます。

デバッグに役立つかもしれないが、問題を示さないメモを入れるのに便利です。

PHPUnitがこれを行う方法をまだ発見していません。

    Please note that PHPUnit swallows all output that is emitted during the execution of a test.
 In strict mode, a test that emits output will fail.

回避策があります。

4

1 に答える 1

3

独自のものを作成しPHPUnit_Framework_TestListener、テストケースを拡張して、それらのメッセージを保存するヘルパー関数を提供することもできます。テストの実行後、これらのメッセージを出力できます。

これは単なるアイデアです。TestListenerこれまで Phpunit 用に を実装したことはありませんが、かなり単純なテストケースを拡張しました (マニュアルによると、「これは PHPUnit を拡張する最も簡単な方法の 1 つです。」 )。

これがすでに役立つことを願っています。ロギングに関する要件もあるかもしれないので、作成するSTDOUTが最終的にそれを行うかどうかはわかりません。これはPHPUnit 3.6です。これが3.7でもほとんど同じように機能することを願っています.

于 2012-09-27T12:00:13.987 に答える