我使用JBehave与硒和宁静,我有3个场景。我想要逐个运行场景。如果场景通过,则运行第二个场景。如果场景两遍,则运行第三个场景。如果情况一失败,那么它不应该运行任何其他情况。我如何实现这一目标?只有当第一个通过JBehave运行第二个方案
1
A
回答
1
您的场景应该彼此独立,并且在一种情况下可以完全表示一个目标。 BDD中的链接场景是一种反模式,应该避免。
接下来的问题是为什么你应用功能测试失败的快速策略。这需要重新考虑,以确定您的情况是否是一个完善的方法。虽然快速失败是部署管道的常态,但对于自动化功能测试,特别是在使用BDD进行功能驱动开发期间,这不是一种好方法。为自动化功能测试提供故障安全策略是一种更好的方法。我建议你完成所有测试。这通常会提供更多的价值。它将避免早期失败的测试,从而掩盖可能更严重的失败测试或测试,以应对更重要或有价值的功能。一份全面的测试报告可以使整改工作成为优先事项。
如果所有三种情况的故障触发都是常见的,则使用共同的先决条件步骤。例如Given the customer is authorised
。然后简单地保留每个场景的前提条件。
如果失败的触发因素是环境因素,请在赛跑者中使用铃声测试或使用适当的@Before测试钩。例如LDAP或数据库可用。然后使用每个功能或场景来测试这个假设。
如果这些都不适用,您将需要使用您正在使用的场景的一些示例详细说明您的要求。
0
您可能会使用受到破坏的异常,但JBehave(以及一般的BDD场景)实际上并不打算以这种方式使用 - 每个场景都应该是独立的。
+0
谢谢约翰。现在我意识到Scenario应该是独立的。 – Neela
相关问题
- 1. Awk在第一个图案和第二个图案之间打印线条,其中第二个图案出现在第一个图案的上方和下方
- 2. TestNG.java.lang.NullPointerException当运行第二个@Test
- 3. jQuery验证火第二种方法,只有当第一个是真
- 4. 如何根据第一个过程的结果运行第二个cURL过程?
- 5. JS不读第一个ID只有第二个
- 6. 通过第一个值获取元组的第二个值
- 7. 的Global.asax第二通过同一个IP
- 8. 针对第一个结果运行第二个搜索
- 9. 第二个jquery“chunk”没有运行
- 10. Jasmine-Node只运行第一个测试
- 11. PHP while while循环,第二个循环只运行一次
- 12. 第一次关闭时运行第二个活动
- 13. CPropertySheet只显示第二个
- 14. 块只有在第二个参数
- 15. 对第一个grep返回的每个字符串运行第二个grep
- 16. 第一个C#第二个表格
- 17. 第一个和第二个xml节点
- 18. 从第二个ViewController到第一个ViewController
- 19. 第一个TextView重叠第二个,Android
- 20. 通过第二场
- 21. 通过点击第一个网站中的按钮在第二个网站上运行jQuery
- 22. 通过MDX的第二个MAX
- 23. 打印,如果只重复第二次节点或只有第一个XSLT
- 24. 不能运行第二个警报
- 25. 第二个jQuery函数无法运行
- 26. 无法运行第二个任务
- 27. 第二个BroadCast接收器不运行
- 28. 在第二个AppDomain中运行服务
- 29. 为什么第二行中的第一个框不在第二行?
- 30. 用于循环跳过第一个和第二个元素
谢谢马丁。实际上,这只能是一种情况,但这是一个很大的情况。所以我想我可以分开它。现在我意识到情景应该是独立的。现在我正在写一个大场景。非常感谢您的帮助。 – Neela