我正在使用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"?>
为什么断言通过时测试正常工作,但失败时崩溃?