2012-08-10 72 views
4

我試圖捕捉到的PHPUnit的輸出:的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編碼字符串作爲$輸出(壞JSON順便說一句,但我可以修復它)。

的問題是,「消息」屬性不完整的,跳過的測試是「跳過測試」或「未完成的測試」,並且不包含我在$this->markTestIncomplete()$this->markTestSkipped()電話:(

能提供的消息我得到的太多?

+0

你可以製作一個我們可以玩的最小可重複的例子嗎? (同時顯示你得到的輸出和你期望的輸出,會很好。) – 2012-08-12 04:33:54

回答

3

您可以通過升級到最新的3.6版本得到這些在JSON日誌。縱觀latest PHPUnit_Util_Log_JSON sourceaddIncompleteTestaddSkippedTest,我可以看到他們都在日誌中添加異常消息。我不能但是,當發生此更改時,找到。如果這些更改不在3.6 .x,您可以創建自己的子類並輕鬆地覆蓋這些方法。

+0

tx。它似乎沒有更新的類被包含在標準版本中雖然.. – ellabeauty 2012-08-12 14:50:45

+0

你是對的。這些變化不會出現在3.6分支 - 只有'master'。 – 2012-08-12 18:30:16

5

試圖爲無論是在phpunit.xml或任何其他配置定義printerClass設置運行帶-v選項(--verbose)

+0

這對我有效,謝謝。 – trampgeek 2014-12-10 01:53:42

0

WATCHOUT PHPUnit的。默認的打印機類將包含跳過的測試,但其他打印機可​​能不會。例如,

"PHPUnit_TextUI_ResultPrinter"不打印任何跳過的測試。

相關問題