ruby-on-rails - 在 Rails 中重新生成 fixture 测试文件

标签 ruby-on-rails testing yaml fixtures

如何重新生成所有 YML fixture 文件?我不小心删除了它们。

最佳答案

@布赖恩,

我正在使用以下脚本从给定的 sql 生成固定装置

这是我的 lib/task 目录下的一个 rake 任务

namespace :fixture_generator do
  desc "generate fixtures for a given sql query from the current development database"

  task :fixture_generator, [:sql, :file_name] => :environment do |t, args|
    args.with_defaults(:sql => nil, :file_name => nil)
    i = "000"
    p "creating fixture - #{args.file_name}"
    File.open("#{Rails.root}/test/fixtures/#{args.file_name}.yml", 'a+') do |file|
      data = ActiveRecord::Base.connection.select_all(args.sql)
      file.write data.inject({}) { |hash, record|
        number = i.succ!
        hash["#{args.file_name}_#{number}"] = record
        hash
      }.to_yaml
    end

  end
end

用法,假设我想为用户表生成 fixture

rake fixture_generator:fixture_generator["select * from users","users"]

而且,如果您使用相同的 fixture 文件名运行另一个查询,它将附加到现有的查询

HTH

关于ruby-on-rails - 在 Rails 中重新生成 fixture 测试文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915726/

相关文章:

testing - 在线库报告的错误

ruby - 在 Jekyll 中,site.posts 不返回任何内容

ruby - 从 xml 名称值转换为简单哈希

docker - 使用环境变量在 docker-compose.yml 中设置 bool 值

css - 从应用程序中删除了样式表,但它仍然出现在 Heroku 上

ruby-on-rails - 如何在还包含其他字段的表单中立即仅上传图像?

ruby-on-rails - Rails和Windows

ruby-on-rails - 加速 rspec Controller 测试 : using before all fails?

testing - 我们如何测试电子商务网站中图像缩放的存在

javascript - 在 Rails 中用于 Javascript 测试的 Selenium 或 Watir