在phpunit测试中回显

nou*_*ine 13 php phpunit

我一直试图echo填写我的phpunit测试但到目前为止没有运气.

我阅读了有关xml配置文件的文档,显然debug参数是我正在寻找的.不幸的是它仍然无效.无论如何这是我的xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true"
         processIsolation="true"
         verbose="true"
         debug="true">
</phpunit> 
Run Code Online (Sandbox Code Playgroud)

这两个processIsolationverbose被接受,但debug并非如此.

当我直接将它传递给phpunit时,该命令实际上工作得很好:

phpunit --debug MyTest.php # here stuff is echoed correctly
Run Code Online (Sandbox Code Playgroud)

但是使用xml配置文件看起来它被忽略了.

edo*_*ian 15

当前版本的PHPUnit >3.6.4(以及所有3.5.*版本)将只打印echo测试用例中的所有内容.

<?php

class OutputTestCase extends PHPUnit_Framework_TestCase {

    public function testEcho() {
        echo "Hi";
    }   
}
Run Code Online (Sandbox Code Playgroud)

生产:

phpunit foo.php 
PHPUnit 3.6.7 by Sebastian Bergmann.

.Hi

Time: 0 seconds, Memory: 3.25Mb

OK (1 test, 0 assertions)
Run Code Online (Sandbox Code Playgroud)

所以,如果你是旧3.6版本只是升级:)

  • 对于它的价值,这似乎在4.1版本上根本不起作用,即使使用--debug选项...... (7认同)
  • 我已经在3.6.3,所以我不能那样.你是如何启动OutputTestCase的?Cuz,如果你用phpunit --debug OutputTestCase.php启动它然后是的它可以工作,但否则它没有. (2认同)
  • 就像我说你**需要**`phpunit> 3.6.4`才能使用.使用3.6.3,如果不运行--debug,您将无法获得该输出.如果你升级它将工作,因为PHPUnit中的行为已更改:) (2认同)