【问题标题】:Cucumber Cleanup黄瓜清理
【发布时间】:2009-12-04 16:02:33
【问题描述】:

民间,

这些部分周围的任何人都知道您是否可以阻止 Cucumber 在运行结束时清理测试数据?我有一些测试仍然失败,我想看看支持这些测试的数据...

有什么想法吗?

谢谢! 科里·威尔克森

【问题讨论】:

  • 您可能需要通过示例进行更多解释。你想做什么? “清洁”是什么意思?您可以单独运行测试并获得良好的结果吗?整个套件都失败了吗?
  • 对不起 - 认为这很清楚。我对黄瓜本身没有问题,一点也不。测试正在按我的预期运行。我只是好奇我是否可以阻止 Cucumber 从我的本地数据库中截断/清除在 Cucumber 测试期间创建的测试数据,以便我可以更好地调查测试失败的原因(而不是 Framework/Cucumber 失败)。感谢您的反对。

标签: ruby-on-rails cucumber integration-testing


【解决方案1】:

在您的features/support/env.rb 文件中有一些关于此的cmets。如果您不想在特定场景完成后回滚数据库,则将 @no-txn 标记添加到场景中。然后,您将需要自己清理数据库。最简单的方法是发送db:test:clone

解决问题的最佳方法是单独运行问题场景并查看每个场景是如何失败的。如果您运行并有将数据留在数据库中的场景,那么您将给自己带来各种问题。解决方案后,请在处理下一个场景或运行之前执行 db:test:clone

【讨论】:

  • 感谢 Joseph - 正是我想要的。
【解决方案2】:

这是我在对 Sam Livingston-Gray 的评论中提到的调试步骤的定义:

When /I want to debug/i do
  debugger
  true # never put debugger at the end of a method
end

【讨论】:

    【解决方案3】:

    有点骇人听闻,但作为最后的手段,也许您可​​以添加一个名为“然后暂停测试”的 Then 块,该块要么停止,要么进入轮询循环,直到它看到一些条件变化(例如,你触摸/features/continue.txt)?

    在您要查看的测试中添加“然后暂停测试”,这样您就可以在数据库继续之前对其进行检查。当然,如果 Cucumber 使用数据库事务,这是行不通的……

    (抱歉含糊不清;自从我上次使用 Cucumber 已经有一段时间了。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多