突然,当我运行'rake test'或'bundle exe rake test'时,出现以下错误。Rails测试似乎没有加载任何类,NameError:未初始化的常量
NameError: uninitialized constant FactoryGirl
之前有人告诉我补充require 'factory_girl'
我test_helper.rb
文件,同样更新的分支运行测试,而在另一台计算机上的任何问题。
不过我试过加require 'factory_girl'
。然后它提出了另一个错误,说NameError: uninitialized constant Faker
,所以我加了require 'faker'
,总是有它需要的东西,而且这个项目的测试总是能正常工作,没有所有这些要求。
信息,可能是有用的:
- 的Ubuntu 16.10
- 的Rails 5.1.1
- 的Ruby 2.3.3(使用rbenv)
- 我使用MINITEST,不RSPEC
Error bracktrace:
** Invoke test (first_time)
** Execute test
rake aborted!
NameError: uninitialized constant FactoryGirl
/home/samir/Projects/Tuuris/test/test_helper.rb:10:in `<top (required)>'
/home/samir/Projects/Tuuris/test/controllers/admin_controller_test.rb:1:in `<top (required)>'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.1.1/lib/rails/test_unit/test_requirer.rb:14:in `block in require_files'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.1.1/lib/rails/test_unit/test_requirer.rb:13:in `each'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.1.1/lib/rails/test_unit/test_requirer.rb:13:in `require_files'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.1.1/lib/rails/test_unit/minitest_plugin.rb:67:in `rake_run'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.1.1/lib/rails/test_unit/testing.rake:14:in `block in <top (required)>'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
/home/samir/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
/home/samir/.rbenv/versions/2.3.3/bin/rake:22:in `load'
/home/samir/.rbenv/versions/2.3.3/bin/rake:22:in `<main>'
Tasks: TOP => test
任何线索?
你在使用'bundle'吗?你在'Gemfile'中有'factory_girl'吗? – yorodm
是的,'捆绑'运行良好。测试组中有'factory_girl','faker'和其他宝石。就像我说的,测试在另一台电脑上运行良好。我甚至用rbenv删除了ruby 2.3.3,并重新安装了ruby 2.3.3,并安装了所有的宝石。我仍然有同样的错误。 :/ –
完整性检查:运行'bundle exec rspec' –