当在phpunit中运行
error_log()
时,它不会被写入正常的错误日志文件中。我希望停止这种情况,让它像通过浏览器访问PHP时那样写入文件。<?php
class exampleTest extends PHPUnit_Framework_TestCase {
public function testSomething() {
error_log('This will not be written to the error log, but I wish it was!');
$this->assertEquals(2, 1+1);
}
}
我目前使用的是php 5.5版本和phpunit 3.7版本。在OSX和Ubuntu上都出现了这个问题。但在Windows 7上没有出现。
error_log()
中除了消息之外没有传递任何参数,它将保存到PHP系统日志记录器中,可能最终会出现在PHP安装的tmp文件夹中。如果您想将其保存在其他地方,可以指定路径,例如error_log('Your message', 3, '/path/to/log/file');
。 - scrowlerlog_errors = On
和error_log = "/var/log/php/php_errors.log"
,那么error_log()函数将会写入该文件。然而,在PHP单元测试中它并不会这样做。我不想调整所有的 error_log 调用来解决phpunit的问题。 - Aaron Silvermanvar_dump
(或assert)检查log_errors
和error_log
,以确保它们符合您的预期。 - David Harkness