我正在使用 apache2、Selenium、PHPUnit。
一些测试会导致 php 错误但通过了,因为从浏览器看起来一切都很好。
如何捕获这些错误以将测试标记为失败?
最好的方法是让 PHP throwErrorException
出错。
set_error_handler(
function($err_severity, $err_msg, $err_file, $err_line) {
throw new ErrorException($err_msg, 0, $err_severity, $err_file, $err_line)
}
);
由于错误总是致命的,因此默认情况下测试将在发生错误时失败(请注意,如果您不断言/捕获异常,它将停止其余的测试)。
PHPUnit 允许添加在每个测试函数之前或之后运行的检查。只需在您的测试中添加assertPreConditions()
orassertPostConditions()
即可查看是否有 PHP 失败的痕迹。
有关更多详细信息,请参阅http://phpunit.de/manual/3.7/en/fixtures.html 。
现在的问题是:如何检测这些错误?检查屏幕上是否有错误文本,或者(如果您在 apache 本地运行)检查 php 错误日志文件的大小是否增加 - 它不应该。这在很大程度上取决于您的需求。