2

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

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

诊断

diag(@diagnostic_message);

打印一条保证不会干扰测试输出的诊断消息。就像 print @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.

解决方法

4

1 回答 1

3

我不知道有什么,您可以创建自己PHPUnit_Framework_TestListener的测试用例并扩展您的测试用例以提供存储这些消息的辅助功能。运行测试后,可以输出这些消息。

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

希望这已经有所帮助,您可能对日志记录也有一些要求,因此不确定您将创建的 STDOUT 是否最终会这样做,这是 PHPUnit 3.6 我希望这与 3.7 几乎相同。

于 2012-09-27T12:00:13.987 回答