背景:我对Thoughtbot的"工厂女孩"gem有一些问题,它用于创建用于单元测试和其他测试的对象.我想go 控制台运行不同的工厂女孩电话,看看发生了什么.例如,我想go 那里做...

>> Factory(:user).inspect

我知道你可以在不同的环境下运行控制台...

$script/console RAILS_ENV=test

但当我这样做时,工厂类是不可用的.看起来好像test_helper.rb没有上膛.

我try 了require个电话,包括一个绝对路径为test_helper.rb的电话,但都失败了:

$script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
  Errno::ENOENT: No such file or directory - 
  /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb

Grr.啊.

推荐答案

For Rails < 3.0

script/console --help.你会注意到语法是script/console [environment],在你的例子中是script/console test.

我不确定您是否需要测试助手,或者测试环境是否为您这样做,但使用该命令,您至少应该能够成功 bootstrap 到测试环境中.

作为旁注:script/中的各种二进制文件设置rails环境的方式不同,这确实有点奇怪.

For Rails 3 and 4

rails c test.如果当前应用程序环境需要,请预编bundle exec.

For Rails 5 and 6

rails console -e test.

Ruby-on-rails相关问答推荐

根据表单内的 Select 字段值渲染部分内容

Rails 7,Hotwire 动态表单,更新值不起作用

Rails 和 jsonb 类型jsonb不存在

如何从设计中删除/禁用注册

未初始化的常量 ActionDispatch::Session::EncryptedCookieStore (NameError)

rails 3:将链接显示为按钮?

在命名空间内设计

Rails 4,使用 ActiveRecord 的原始查询

是否有不涉及删除 Gemfile.lock 的在任何源中找不到 *gem*错误的修复?

如何获取包含表的列名的数组

如何编写 Capybara 断言来判断按钮的存在及其启用或禁用状态?

Ruby - 合并两个数组并删除重复的值

通过 Ruby 或 Rails 的 LDAP

Rails Associations - has_many => :through - 但相同的模型

获取完整的 rails 控制器名称,包括命名空间

如何在 Rails 应用程序中测试 ElasticSearch (Rspec)

rake db:回滚不起作用?

列出关联模型的名称

使用redirect_to后如何停止控制器执行? (使用导轨)

ruby on rails 如何处理 NaN