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 顺便说一句,但我可以修复它)。

问题是不完整和跳过测试的“消息”属性是“跳过测试”或“不完整测试”,并且不包含我在$this->markTestIncomplete()or$this->markTestSkipped()调用中提供的消息:(

我也能得到吗?

4

3 回答 3

6

尝试使用 -v 选项(--verbose)运行 phpunit

于 2014-03-26T16:43:36.040 回答
3

您可以通过升级到最新的 3.6 版本在 JSON 日志中获取这些信息。查看and的最新PHPUnit_Util_Log_JSON来源,我可以看到它们都在日志中添加了异常消息。但是,我无法找到进行此更改的时间。如果这些更改不在 3.6.x 中,您可以创建自己的子类并非常轻松地覆盖这些方法。addIncompleteTestaddSkippedTest

于 2012-08-12T10:30:14.750 回答
1

printerClass注意在 phpunit.xml 或任何其他配置中定义设置。默认打印机类将包括跳过的测试,但其他可能不包括。

"PHPUnit_TextUI_ResultPrinter"例如,不打印任何跳过的测试。

于 2015-11-03T17:13:39.017 回答