【问题标题】:Using Minitest, require 'minitest_helper' load error使用 Minitest,需要 'minitest_helper' 加载错误
【发布时间】:2023-03-02 23:29:01
【问题描述】:

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

没什么特别的。感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails ruby minitest


    【解决方案1】:

    在 Ruby 1.9 中,工作目录包含在 Ruby 加载路径中。您可以根据需要添加它:

    $: << "."
    

    ...或者您可以添加任何其他您想要的require Ruby 文件的目录。

    如果你看到其他人只写:

    require 'minitest_helper'
    

    ...那么毫无疑问他们已经对他们的加载路径做了一些事情(或者 Rails/Rake 已经为他们做了)。你可以在你的 Rakefile 中尝试p $:,看看 Rails/Rake 对加载路径做了什么(如果有的话)。

    【讨论】:

    • 请注意,当前路径在 1.9.2 中已从搜索中删除,并非没有原因
    【解决方案2】:

    您的测试没有找到帮助文件,因为您没有告诉您的测试查看它的位置。尝试将您的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 2012-09-25
      • 1970-01-01
      相关资源
      最近更新 更多