加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby on Rails:黄瓜:如何在每个场景后重置数

发布时间:2020-12-16 19:04:56 所属栏目:百科 来源:网络整理
导读:所以我在我的测试环境中 现在,在终端,rake db:test:prepare清除db …但不是当我从代码中运行它时 我在features / support / env.rb中有这个: Before do task :build_all do [ :debug,:release ].each do |t| $build_type = t Rake::Task["db:test:prepare
所以我在我的测试环境中

现在,在终端,rake db:test:prepare清除db …但不是当我从代码中运行它时

我在features / support / env.rb中有这个:

Before do
    task :build_all do
      [ :debug,:release ].each do |t|
        $build_type = t
        Rake::Task["db:test:prepare"].reenable
        Rake::Task["db:test:prepare"].invoke
      end
    end
end

但是当我的测试运行完毕后,我的数据仍保留在project_test数据库中

这是在我的database.yml中

test:
  adapter: mysql
  encoding: utf8
  database: projectname_test
  username: root
  password:

我也试过了

db:test:purge

db:test:reset

我知道它正在使用我的测试数据库,因为我检查了mySQLWorkbench,它将数据插入到表中……但是在完成时不会删除数据(我必须手动删除它).
当表为空时,测试用例通过

解决方法

你应该用
begin
  require 'database_cleaner'
  require 'database_cleaner/cucumber'
  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

Before do
  DatabaseCleaner.start
end

After do |scenario|
  DatabaseCleaner.clean
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读