2

我正在使用 apache2、Selenium、PHPUnit。

一些测试会导致 php 错误但通过了,因为从浏览器看起来一切都很好。

如何捕获这些错误以将测试标记为失败?

4

2 回答 2

1

最好的方法是让 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) 
    }
);

由于错误总是致命的,因此默认情况下测试将在发生错误时失败(请注意,如果您不断言/捕获异常,它将停止其余的测试)。

于 2013-11-01T08:38:09.173 回答
0

PHPUnit 允许添加在每个测试函数之前或之后运行的检查。只需在您的测试中添加assertPreConditions()orassertPostConditions()即可查看是否有 PHP 失败的痕迹。

有关更多详细信息,请参阅http://phpunit.de/manual/3.7/en/fixtures.html 。

现在的问题是:如何检测这些错误?检查屏幕上是否有错误文本,或者(如果您在 apache 本地运行)检查 php 错误日志文件的大小是否增加 - 它不应该。这在很大程度上取决于您的需求。

于 2013-10-31T08:23:59.987 回答