2012-09-23 6 views
6

「minitest_helper」ロードエラーが必要ですが、私はかなりの答えを見つけることができない厄介な問題が持っている:は、私はRSpecのに代わるものとしてMinitest ::仕様をテストしてい

Iをspec/models/*_spec.rbにいくつかの基本仕様をセットアップしました。私のレールのアプリがminitest-railsを備えており、次のように私は私のrakefileを設定しました:

Rake::TestTask.new do |t| 
    t.libs.push "lib" 
    t.test_files = FileList['spec/**/*_spec.rb'] 
    t.verbose = true 
end 
task :default => :test 

を私はこのように私のスペックファイルを書き込む場合は、今すぐ:

require 'minitest_helper' 

describe User do 
    ... 
end 
...と rake testを実行して、私が手:

user_spec.rb:1:in `require': cannot load such file -- minitest_helper (LoadError) 

しかし、私が変更した場合

require_relative '../minitest_helper' 
にラインを必要とします

それが動作します。したがって、これは機能的ですが、私がオンラインで見つけた最小仕様を使用しているすべての人々が、require_relativeではなくrequire 'minitest_helper'を呼び出しているようです。だから、私はそれが他の人のために働くことができますが、私の状況ではないことが分からないのですか?情報の

一つの最後のピースは、私のヘルパーファイルは、次のようになります。

# spec/minitest_helper.rb 
ENV["RAILS_ENV"] = "test" 
require File.expand_path('../../config/environment', __FILE__) 

require "minitest/autorun" 
require "minitest/rails" 

# Uncomment if you want Capybara in accceptance/integration tests 
# require "minitest/rails/capybara" 

# Uncomment if you want awesome colorful output 
# require "minitest/pride" 

class MiniTest::Rails::ActiveSupport::TestCase 
    # Add more helper methods to be used by all tests here... 
end 

何も空想。助けてくれてありがとう!

答えて

7

あなたのテストでは、どこに見えるようにテストしていないので、ヘルパーファイルが見つかりません。レーキのタスクを次のように変更してみてください:

Rake::TestTask.new do |t| 
    t.libs << "lib" 
    t.libs << "spec" 
    t.test_files = FileList['spec/**/*_spec.rb'] 
    t.verbose = true 
end 
task :default => :test 
+1

't.libs <<" spec "'もちろんです。ありがとう。 – Andrew

1

Ruby 1.9では、作業ディレクトリはではなく、がRubyのロードパスに含まれています。

$: << "." 

を...またはあなたがからrequire Rubyファイルにしたい任意の他のディレクトリを追加することができます:あなたがしたい場合は、それを追加することができます。

あなただけ書いて他の人が表示された場合:

require 'minitest_helper' 

は...そして、彼らはロードパスに何かを行っている(またはレール/レーキが彼らのためにそれを行っている)確か。 Rakefileの中にp $:を入れて、Rails/Rakeがロードパス(何かがあれば)と何をするかを調べることができます。

+0

これは意味があります、ありがとう! – Andrew

+0

現在のパスは1.9.2の検索では理由がなくても削除されました。 – UncleGene

関連する問題