Rails测试找不到test_helper

Pla*_*Ton 27 ruby testing ruby-on-rails

我正在尝试通过ruby test/unit/mytest.rb运行单独的测试,但我总是得到一个"没有这样的文件加载 - test_helper"错误.谷歌提出了一些建议,但没有一个对我有用.我在Ubuntu 10.10上运行Rails 3.0,Ruby 1.9.2(通过RVM)

这是我到目前为止所尝试的 - 任何建议都非常感激

  • 在test/unit/mytest_test.rb 中将"require test_helper"更改为"require File.dirname(FILE)+"/../test_helper"".它带回"没有这样的文件加载 - 测试/单位/../ test_helper"
  • 尝试运行rvm test/unit/mytest_test.rb与上面相同
  • 尝试运行ruby -I test/unit/mytest_test.rb.没有消息到终端.大约5分钟后等待事情发生,ctrl + c'd了

任何建议非常感谢 - 我很难过.

DGM*_*DGM 24

ruby 1.9.2从加载路径中删除当前目录".".我必须这样做才能让它发挥作用:

require 'test_helper'
Run Code Online (Sandbox Code Playgroud)

并称之为:

ruby -I. unit/person_test.rb 
Run Code Online (Sandbox Code Playgroud)

  • ruby -Itest test/unit/person_test.rb.参考:http://guides.rubyonrails.org/testing.html#running-tests (4认同)

Red*_*ick 13

我今天自己也在打这个东西而且我不喜欢整个文件和东西的大需求......

在我的情况下,它是Rakefile的错误..

所以现在它看起来像这样:

require "bundler/gem_tasks"
require "rake/testtask"

Rake::TestTask.new do |t|
  t.libs << "lib"
  t.libs << "test" # here is the test_helper
  t.pattern = "test/**/*_test.rb"
end

task default: :test
Run Code Online (Sandbox Code Playgroud)

我知道它已经老了并且已经接受了答案,但也许这也会帮助别人:)祝你有个美好的一天


Nat*_*ird 12

我已将以下内容添加到测试文件的顶部.

require File.expand_path("../../test_helper", __FILE__)
Run Code Online (Sandbox Code Playgroud)

这将恢复以前的行为并允许调用简单:

ruby test/unit/person_test.rb
Run Code Online (Sandbox Code Playgroud)


Aet*_*rus 6

也许您应该以这种方式运行您的测试用例:

$ rake test
Run Code Online (Sandbox Code Playgroud)

如果使用rake,则无需从生成的代码中更改"require"语句.

使用Ruby 1.9.3和Rails 3.2.8进行测试