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