我正在测试Minitest :: Spec作为RSpec的替代品,但我有一个麻烦的问题我无法找到答案:
我在spec / models / * _ spec.rb中设置了一些基本规格.我的rails应用程序包含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
现在,如果我像这样编写我的spec文件:
require 'minitest_helper' describe User do ... end
…并进行rake测试,我得到:
user_spec.rb:1:in `require': cannot load such file -- minitest_helper (LoadError)
但是,如果我将需求行更改为
require_relative '../minitest_helper'
然后它工作.所以,这是功能性的,但似乎每个使用我在网上找到的最小规格的人的例子都只需要调用require’minitest_helper’,而不是require_relative.那么,我错过了什么让那些为别人工作但不在我的情况下呢?
最后一条信息,我的帮助文件如下所示:
# 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
没有什么花哨.谢谢您的帮助!
解决方法
您的测试没有找到帮助文件,因为您没有告诉您的测试看它在哪里.尝试将您的rake任务更改为:
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