防止断言在Codeception中失败测试

时间:2014-07-08 15:52:39

标签: codeception

我刚开始探索自动化测试,特别是Codeception,作为我在网页设计工作室进行质量保证工作的一部分。我遇到的最大问题是,一旦断言失败,Codeception就会无法通过测试,无论它放在代码中的什么位置。如果我的网络连接打嗝或太慢,事情就会变得困难。我想知道是否有方法可以更好地控制Codeception何时失败并终止测试会话,甚至更好的方法是在断言失败时重试或执行不同的块或命令循环。例如,我想做类似以下的事情:

if ( $I->see('Foo') )
{
     echo 'Pass';
}
else
{
     echo 'Fail';
}

有没有人有任何可以帮助实现这一目标的建议?

2 个答案:

答案 0 :(得分:3)

您可以使用条件断言:

   $I->canSeeInCurrentUrl('/user/miles');
   $I->canSeeCheckboxIsChecked('#agree');
   $I->cantSeeInField('user[name]', 'Miles');

codeception documentation说:

  

有时您不希望在断言失败时停止测试。也许你有一个长期运行的测试,你希望它运行到最后。在这种情况下,您可以使用条件断言。每个see方法都有一个相应的canSee方法,而dontSee有一个cantSee方法。

答案 1 :(得分:0)

我不确定,如果我理解正确,但我想,你应该尝试使用Cest。

$ php codecept.phar generate:cest suitename CestName

所以你可以在一个测试函数中编写一个测试。如果测试失败,它将中止。您还可以配置代码,它不会中止,只显示在所有测试结束时在摘要中失败的一个测试。

请参阅文档:https://github.com/Codeception/Codeception/blob/2.0/docs/07-AdvancedUsage.md

也许最好使用:

$I::dontSee('Foo');

此致