我正在测试 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
现在,如果我这样写我的规范文件:
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'
然后就可以了。所以,这是功能性的,但似乎我在网上找到的每个使用 minitest 规范的人的例子都只是调用 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
关于ruby-on-rails - 使用Minitest,需要 'minitest_helper'加载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554349/