PHPUnit、Selenium 基本测试因致命错误而失败

2024-02-04

我正在运行 PHP 5.3.6 和来自 Github 的最新版本的 PHPUnit。当我从文档复制示例 17.1 时,当assertTitle 失败时,它会遇到致命错误。我收到此错误消息:

Fatal error: Call to a member function toString() on a non-object in <path>/phpunit/phpunit-selenium/PHPUnit/Extensions/SeleniumTestCase.php on line 1041

当我将断言更改为通过时,PHPUnit 运行得很好。

我挖出了该行,这是片段:

protected function onNotSuccessfulTest(Exception $e)
    {
        if ($e instanceof PHPUnit_Framework_ExpectationFailedException) {
            $buffer  = 'Current URL: ' . $this->drivers[0]->getLocation() .
                       "\n";
            $message = $e->getComparisonFailure()->toString();

$e->getComparisonFailure() 返回 NULL,而不是对象。我做错了什么?

UPDATE:

我找到了失败的原因,尽管我还没有找到解决办法。

在 PHPUnit/Framework/Constraint.php 的第 92 行,它调用 using

$this->fail($other,$description)

其定义为:

protected function fail($other, $description, PHPUnit_Framework_ComparisonFailure $comparisonFailure = NULL)

由于没有传递 PHPUnit_Framework_ComparisonFailure,NULL在 PHPUnit/Framework/Constraint.php 的第 141 行传递

 

抛出新的 PHPUnit_Framework_ExpectationFailedException( $失败描述, $comparison失败 );

它是由 getComparisonFailure() 获取的,它应该返回一个对象,如上所述。

还有更多想法吗?


只需更换$message = $e->getComparisonFailure()->toString(); with $message = $e->getComparisonFailure()->exceptionToString;

这对我来说可以

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHPUnit、Selenium 基本测试因致命错误而失败 的相关文章

随机推荐