php cli 立即输出,如何在执行PHP单元测试期间在CLI中输出?

在运行PHPUnit测试时,我希望能够转储输出,这样我就可以调试一两件事.

class theTest extends PHPUnit_Framework_TestCase

{

/**

* @outputBuffering disabled

*/

public function testOutput() {

print_r("Hello World");

print "Ping";

echo "Pong";

$out = "Foo";

var_dump($out);

}

}

结果如下:

PHPUnit @package_version@ by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 3.00Mb

OK (1 test, 0 assertions)

请注意,没有预期的输出.

我在2011年9月19日使用了git repos的HEAD版本.

php -version的输出:

$php -version

PHP 5.2.9 (cli) (built: Dec 8 2010 11:36:37)

Copyright (c) 1997-2009 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

有什么我做错了,或者这可能是一个PHPUnit错误?

解决方法:

UPDATE

刚刚意识到另一种方法,它比–verbose命令行选项更好地工作:

class TestSomething extends PHPUnit_Framework_TestCase {

function testSomething() {

$myDebugVar = array(1, 2, 3);

fwrite(STDERR, print_r($myDebugVar, TRUE));

}

}

这使您可以随时将任何内容转储到控制台,而不会出现–verbose CLI选项随附的所有不需要的输出.

正如其他答案所指出的那样,最好使用内置方法测试输出,例如:

$this->expectOutputString('foo');

但是,有时候调侃并在测试用例中看到一次性/临时调试输出是有帮助的.但是,不需要var_dump hack / workaround.这可以通过在运行测试套件时设置–verbose命令行选项轻松完成.例如:

$phpunit --verbose -c phpunit.xml

在CLI环境中运行时,这将显示测试方法内部的输出.

标签:php,unit-testing,phpunit

来源: https://codeday.me/bug/20190923/1814667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值