【问题标题】:Why is a cucumber scenario failing only after I run the full test suite?为什么只有在我运行完整的测试套件后黄瓜场景才会失败?
【发布时间】:2012-10-19 01:03:14
【问题描述】:

如果我运行特定场景,它全是绿色的。 如果我只运行黄瓜套件(又名耙黄瓜),它就是绿色的。 但是,如果我运行完整的测试套件(又名 rake),则单个场景会失败。

我认为这与数据库的状态和我的配置有关。我编写了黄瓜场景以假设最初是一个空数据库,并且我正在为各个场景构建小型数据集。

我正在使用具有截断策略的 DatabaseCleaner,我的理解是这将清除数据库。我弄错了吗?当单元和功能测试运行时,是否有可能已经创建的数据挥之不去?有没有一种快速的方法可以确保黄瓜开始干净?

很高兴开始发布代码并涉足配置细节...

谢谢

【问题讨论】:

  • 在不深入细节的情况下很难回答这个问题,因为有很多可能导致这个问题。你在打什么吗?改变任何常数?你在用 Timecop 吗?在配置/全局对象上设置任何状态?

标签: ruby-on-rails database testing cucumber


【解决方案1】:

双手抱头。深深的耻辱。

我从来没有真正清理过数据库。

我正在制定策略,但从未扣动扳机。

功能/支持/env.rb

之前:

begin
  DatabaseCleaner.strategy = :truncation
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

之后:

begin
  DatabaseCleaner.strategy = :transaction
  DatabaseCleaner.clean
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

不要让它发生在你身上。

叹息。

【讨论】:

    猜你喜欢
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多