ruby-on-rails - 使用Minitest,需要 'minitest_helper'加载错误

标签 ruby-on-rails ruby minitest

我正在测试 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/

相关文章:

ruby-on-rails - Gemfile.lock 包含合并冲突

ruby - 如何在 Ruby 中获取 Enumerable 的第 n 个元素

ruby-on-rails - 我是否正确使用了 rails 表单?

ruby - Guard 不向 growl 发送 gntp 通知

ruby-on-rails - send_file pdf时将浏览器标签标题更改为文件名

ruby-on-rails - parallel_tests gem 是否按顺序运行您的测试套件?

ruby-on-rails - 在 Jekyll 中使用插件

ruby-on-rails - 为什么这个简单的迷你测试失败了?

ruby - 使用 Minitest::Mock 验证从未调用过或仅调用过一次的方法

ruby-on-rails - rails : switch to puma for request specs