rake cucumber 和 cucumber --tag @tagname 给出不同的结果

发布于 2024-10-16 14:40:20 字数 689 浏览 6 评论 0原文

如果我使用 rake cucumber ,则不会加载固定装置,并且我的测试会失败。如果我使用 cucumber --tag @tagname 来运行一个场景,它会加载固定装置、工厂,并且一切都会通过。

我的 /features/support/env.rb 的底部如下所示:

Cucumber::Rails::World.use_transactional_fixtures = true
Fixtures.reset_cache  
fixtures_folder = File.join(RAILS_ROOT, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)

if defined?(ActiveRecord::Base)
  begin
    require 'database_cleaner'
    DatabaseCleaner.strategy = :truncation
  rescue LoadError => ignore_if_database_cleaner_not_present
  end
end

其他一切都是相当标准的 Rails 3。

If I use rake cucumber the fixtures are not loaded and my tests fail. If I use cucumber --tag @tagname to run a scenario it loads fixtures, factories, and everything passes.

The bottom of my /features/support/env.rb looks like this:

Cucumber::Rails::World.use_transactional_fixtures = true
Fixtures.reset_cache  
fixtures_folder = File.join(RAILS_ROOT, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)

if defined?(ActiveRecord::Base)
  begin
    require 'database_cleaner'
    DatabaseCleaner.strategy = :truncation
  rescue LoadError => ignore_if_database_cleaner_not_present
  end
end

Everything else is fairly standard Rails 3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱人如己 2024-10-23 14:40:20

我必须更改这一行:

DatabaseCleaner.strategy = :truncation, {:except => %w[degrees states_provinces contribution_types manuscript_types statuses countries roles user_templates]}

我需要加载所有这些表才能通过测试,但 DatabaseCleaner 在每个场景后都会截断它们。

I had to change this line:

DatabaseCleaner.strategy = :truncation, {:except => %w[degrees states_provinces contribution_types manuscript_types statuses countries roles user_templates]}

I needed all of those tables loaded for the tests to pass but DatabaseCleaner was truncating them after each scenario.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文