如何捕获Selenium PHPUnit测试运行时发生的php错误?

时间:2013-10-31 01:32:04

标签: php testing selenium phpunit

我正在使用apache2,Selenium,PHPUnit。

有些测试会导致php错误,但是因为看起来浏览器的一切都很好。

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

2 个答案:

答案 0 :(得分:1)

最好的方法是让PHP在出错时抛出ErrorException

set_error_handler(
    function($err_severity, $err_msg, $err_file, $err_line) { 
        throw new ErrorException($err_msg, 0, $err_severity, $err_file, $err_line) 
    }
);

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

答案 1 :(得分:0)

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

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

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