首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >再次运行cucumber方案,直到通过为止

再次运行cucumber方案,直到通过为止
EN

Stack Overflow用户
提问于 2017-05-31 16:49:24
回答 1查看 452关注 0票数 0

我有10个测试要在cucumber中运行,我正在使用ruby编写我的代码。在测试设计下的应用程序,迫使我拥有相互依赖的测试。

因此,在前一个案例通过之前,下一个案例都会失败。我添加了cucumber_wants_to_quit,以防第二种情况失败,以避免等待只获得失败报告。现在,我正在寻找类似的东西,再次运行第二个场景,并在进入第三个场景之前一直运行到pass

我知道cucumber re-run命令,但我不想使用它,因为它基本上运行所有场景,并在第一次完整运行完成后运行失败的案例。

我的要求基本上是,当第二个场景失败时,在移动到第三个场景之前,运行第二个场景,直到通过。在编码语言中,类似于

代码语言:javascript
复制
 After do |scenario.name|
     if scenario.name == failed?
         status = scenario.name.run_again until scenario.name == passed
         if !status
            Cucumber.wants_to_quit = true
         end
     end
 end

对此有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2017-06-01 03:34:33

我认为你正在攀登一个滑坡路,你的测试是相互依赖才能通过的。在以后的工作中,您可能会不断遇到这种方法的问题。

我建议编写你的测试,这样它们就不会相互依赖,并使用像Factory Girl这样的框架来存根测试对象等。这里有很大的灵活性,并且与黄瓜很好地集成在一起。

更新:根据您的评论,动态口令的测试应该是在您的TEST环境之外完成的集成测试。例如,当您将新代码部署到您的DEV环境时,您的集成测试(测试动态口令)应该在部署的代码上运行。

在您的TEST环境中,您可以fake动态口令(与工厂女孩)。这将消除间歇性的失败,并使您的测试彼此独立,从而使您的测试套件更加整洁和可维护。

在短期内,也许您可以创建一个全局状态变量来保存测试运行的状态。缺点是,您将不得不在每次测试中检查这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44279981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档