2012-08-10 69 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"不打印任何跳过的测试。

相关问题