我正在尝试捕获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 btw,但我可以解决它)。
问题是不完整和跳过测试的“消息”属性是“跳过测试”或“不完整测试”,并且不包含我在$this->markTestIncomplete()
或$this->markTestSkipped()
来电中提供的消息:(
我也能得到吗?
答案 0 :(得分:5)
尝试使用-v选项运行phpunit(--verbose)
答案 1 :(得分:3)
您可以通过升级到最新的3.6版本在JSON日志中获取这些内容。查看addIncompleteTest
和addSkippedTest
的{{3}},我可以看到他们都在日志中添加了异常消息。但是,当进行此更改时,我无法找到。如果这些更改不在3.6.x中,您可以创建自己的子类并轻松覆盖这些方法。
答案 2 :(得分:1)
注意在phpunit.xml或其他任何配置中定义printerClass
设置。默认的打印机类将包括跳过的测试,但其他可能不包括。
"PHPUnit_TextUI_ResultPrinter"
不会打印任何跳过的测试。