我刚开始探索自动化测试,特别是Codeception,作为我在网页设计工作室进行质量保证工作的一部分。我遇到的最大问题是,一旦断言失败,Codeception就会无法通过测试,无论它放在代码中的什么位置。如果我的网络连接打嗝或太慢,事情就会变得困难。我想知道是否有方法可以更好地控制Codeception何时失败并终止测试会话,甚至更好的方法是在断言失败时重试或执行不同的块或命令循环。例如,我想做类似以下的事情:
if ( $I->see('Foo') )
{
echo 'Pass';
}
else
{
echo 'Fail';
}
有没有人有任何可以帮助实现这一目标的建议?
答案 0 :(得分:3)
您可以使用条件断言:
$I->canSeeInCurrentUrl('/user/miles');
$I->canSeeCheckboxIsChecked('#agree');
$I->cantSeeInField('user[name]', 'Miles');
有时您不希望在断言失败时停止测试。也许你有一个长期运行的测试,你希望它运行到最后。在这种情况下,您可以使用条件断言。每个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');
此致