ruby-on-rails - Rails::Generator 没有在 spec 文件夹中创建工厂

标签 ruby-on-rails ruby rspec factory-bot rails-generators

我正在尝试在模块内生成一个新工厂,我基本上需要

require 'rails/generators'

我正在调用下面的命令。请注意,它会在 test 文件夹 中创建文件。

Rails::Generators.invoke 'factory_girl:model', ["Audit"]

-- create_table("audit", {:id=>:integer})
   -> 0.0085s
      create  test/factories/audit.rb

当我尝试在终端中生成工厂时,它会在 spec 文件夹中创建工厂:

vo@so:~/Desktop/ruby-pos/api$ rails generate factory_girl:model 'Audit'
      create  spec/factories/audits.rb

我的问题是:我基本上想在运行 Rails::Generators.invoke 'factory_girl:model', ["Audit"] 时在 spec 文件夹 中创建工厂.

我被这个问题困了几个小时,这就是我来这里的原因:)有什么想法吗?

最佳答案

如果您没有在 application.rb 中指定工厂目录,请尝试添加它。一定要帮忙。

更新(equivalent8 的优点):

对于 FactoryBot gem:

config.generators do |g|
  g.test_framework :rspec
  g.fixture_replacement :factory_bot, dir: 'spec/factories'
end

对于旧的 FactoryGirl gem:

config.generators do |g|
  g.test_framework :rspec
  g.fixture_replacement :factory_girl, dir: 'spec/factories'
end

关于ruby-on-rails - Rails::Generator 没有在 spec 文件夹中创建工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41432117/

相关文章:

ruby-on-rails - 使用 Rails 进行不区分大小写的 Postgres 搜索

mysql - Rails 控制台不同的 MySQL 结果

mysql - 在 Ruby on Rails 中,更新的 gem 导致以前通过 Capybara 测试的 mysql 数据库回滚

ruby-on-rails-3 - 从初始化属性切换到工厂时 rspec 测试失败

mysql - rspec 测试失败 b/c application_controller 正在进行数据库调用

MySQL 允许保存无效日期

ruby-on-rails - 如何向已创建的 Controller 添加新操作?

ruby-on-rails - Rails 接受_nested_attributes_for。使用reject_if通过使用父对象的属性来拒绝对象

ruby - 在 Ruby 中引用传递的 block 中的调用对象

ruby-on-rails - 如何为 Rspec 中的特定参数 stub 方法