我正在使用PHPUnit在内部调用error_log
的类上运行单元测试(message_type为0,因此它是该PHP环境的“标准”错误输出)。在命令行上运行测试时,error_log
的输出将中断PHPUnit输出,因为在命令行环境中,error_log
的输出为STDERR。是否可以在测试代码中仅一次调用就将输出捕获或重定向到STDERR?用伪代码:
function testSomethingHappens() {
// TODO redirect STDERR
$result = (new MyClass())->doSomething();
// TODO restore STDERR
$this->assertSame( 'OK', $result );
}