phpunit:是否有与perl的Test :: More :: note()和Test :: More :: diag()函数类似的函数?

时间:2012-09-26 16:12:17

标签: php perl phpunit

我是Phpunit的新手,巧合(截至2012年9月)我安装了全新的phpunit 3.7.0(实际上它显示为3.7.1,因为我的phpunit安装是一个git checkout)

我想要的是一个测试感知的“echo”关键字或printf函数,它在phpunit测试类中的作用与diag()函数或perl {{3}的note()函数相同。 }模块。

  

诊断

diag(@diagnostic_message);
     

打印确保不会干扰的诊断消息   测试输出。就像打印@diagnostic_message简单连接一样   在一起。

     

请注意

    note(@diagnostic_message);
     

与diag()类似,但在线束中运行测试时将看不到消息。      它只会在详细的TAP流中显示。

     

便于输入可能对调试有用的注释,但不表示存在问题。

我还没有发现PHPUnit这样做的方式。

    Please note that PHPUnit swallows all output that is emitted during the execution of a test.
 In strict mode, a test that emits output will fail.

Test::More

1 个答案:

答案 0 :(得分:3)

我不知道有任何问题,您可以创建自己的PHPUnit_Framework_TestListener并扩展您的测试用例以提供存储这些消息的辅助函数。测试运行后,可以输出这些消息。

这只是一个想法,我到目前为止从未为Phpunit实现过TestListener,但extended testcases这是相当直接的(手册说:“这是最简单的一个扩展PHPUnit的方法。“)。

希望这已经有用了,你可能对日志记录也有一些要求,所以不确定你创建的STDOUT是否会最终完成,这就是PHPUnit 3.6我希望这与3.7的工作方式基本相同。