2

我正在使用Behat\Mink\Driver\Selenium2Driver. 这是@Then我的一项功能的功能:

/**
 * @Then /^I should see "([^"]*)"$/
 */
public function iShouldSee($result)
{
    $verification = new WebAssert($this->session);
    try
    {
        $verification->pageTextContains($result);
    }
    catch(ResponseTextException $e)
    {
        printf("something went wrong");
    }
}

如果我写了一个断言应该通过的场景,我没有问题:它可以正常运行并以 junit 格式创建输出文件,稍后我将传递给 Jenkins。

但是,如果我更改场景以使其失败,则在失败的断言文本之后执行会中断,并且我会收到以下消息:

Then I should see "my text"        # MyCompany\MyBDDBundle\Features\Context\FeatureContext::iShouldSee()
The text "my text" was not found anywhere in the text of the current page.

PHP Fatal error: Call to a member function text() on a non-object in C:\BitNami\wampstack-5.4.15-0\frameworks\symfony\vendor\behat\mink-selenium2-driver\src\Behat\Mink\Driver\Selenium2Driver.php on line 464

Fatal error: Call to a member function text() on a non-object in C:\BitNami\wampstack-5.4.15-0\frameworks\symfony\vendor\behat\mink-selenium2-driver\src\Behat\Mink\Driver\Selenium2Driver.php on line 464

我一直在查看 Selenium2Driver.php 文件,第 464 行是getText($xpath)我不使用的内部函数。

最后,在测试被中断的情况下,作为输出创建的 junit 文件仅包含 XML 标头,尽管有许多已通过的场景。

<?xml version="1.0" encoding="UTF-8"?>

为什么断言通过时测试正常工作,但失败时崩溃?

4

0 回答 0