4

PHPUnitの出力をキャプチャしようとしています:

$pu_result = new \PHPUnit_Framework_TestResult();
$pu_result->addListener(new \PHPUnit_Util_Log_JSON());      

$pu_suite = new \PHPUnit_Framework_TestSuite();

// here I add tests  
// $pu_suite->addTestSuite(...);

ob_start();
$pu_suite->run($pu_result);    
$output = ob_get_clean();

これにより、jsonでエンコードされた文字列が$ outputとして表示されます(悪いjsonところで、修正できます)。

問題は、不完全なテストとスキップされたテストの「message」プロパティが「Skippedtest」または「IncompleteTest」であり、$this->markTestIncomplete()または$this->markTestSkipped()呼び出しで提供したメッセージが含まれていないことです:(

私もそれを手に入れることができますか?

4

3 に答える 3

6

-vオプション(--verbose)を指定してphpunitを実行してみてください

于 2014-03-26T16:43:36.040 に答える
3

これらは、最新の3.6リリースにアップグレードすることでJSONログで取得できます。との最新のPHPUnit_Util_Log_JSONソースを見るaddIncompleteTestaddSkippedTest、両方ともログに例外メッセージを追加していることがわかります。ただし、この変更がいつ行われたかはわかりません。これらの変更が3.6.xにない場合は、独自のサブクラスを作成して、これらのメソッドを非常に簡単にオーバーライドできます。

于 2012-08-12T10:30:14.750 に答える
1

printerClassphpunit.xmlまたはその他の構成で設定を定義する場合は注意が必要です。デフォルトのプリンタクラスにはスキップされたテストが含まれますが、他のクラスには含まれない場合があります。

"PHPUnit_TextUI_ResultPrinter"たとえば、スキップされたテストは出力されません。

于 2015-11-03T17:13:39.017 に答える