我的php代码中有一些var_dump(我知道最后一定没有,但仍然是),并且在测试运行时,它们向控制台输出非必要的信息,是否有一种忽略某些代码执行的方法?
我试过
/**
* @codeCoverageIgnore
*/
和
// @codeCoverageIgnoreStart
print '*';
// @codeCoverageIgnoreEnd
但这只是忽略了覆盖范围,仍然执行代码。
答案 0 :(得分:12)
您可以将setOutputCallback设置为不执行任何操作。其效果是抑制测试或测试类中打印的任何输出。
例如:
namespace Acme\DemoBundle\Tests;
class NoOutputTest extends \PHPUnit_Framework_TestCase {
public function testSuppressedOutput()
{
// Suppress output to console
$this->setOutputCallback(function() {});
print '*';
$this->assertFalse(false, "Don't see the *");
}
}
您可以在doc
中找到一些参考希望这个帮助
答案 1 :(得分:0)
我不知道这是一种好的风格,但我这样做:
ob_start();
echo 200;
$output = ob_get_clean();