Trailblazer и Minitest - NameError: неинициализированная константа MiniTest

Среда:

rails -v
Rails 4.2.5

ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux-gnu]

bundle list trailblazer
trailblazer-1.1.0

Я работаю с примерами из книги Trailblazer и столкнулся с ситуацией, которую я не понимаю. Следуя настройке, приведенной в книге, когда я запускаю определенный тест, используя bundle rake test/concerns/ar_invoice/crud_test.rb это работает как ожидалось. Тем не менее, если я просто запустить bundle rake test тогда я вижу это вместо этого:

bundle rake test
rake aborted!
NameError: uninitialized constant MiniTest
./test/concepts/ar_invoice/crud_test.rb:1:in `<top (required)>'
./bundle/lib/gems/railties-4.2.5/lib/rails/test_unit/sub_test_task.rb:114:in `block (3 levels) in define'
./bundle  /lib/gems/railties-4.2.5/lib/rails/test_unit/sub_test_task.rb:114:in `each'
./bundle/lib/gems/railties-4.2.5/lib/rails/test_unit/sub_test_task.rb:114:in `block (2 levels) in define'
./bundle/lib/gems/railties-4.2.5/lib/rails/test_unit/sub_test_task.rb:113:in `each'
./bundle/lib/gems/railties-4.2.5/lib/rails/test_unit/sub_test_task.rb:113:in `block in define'
./bundle/lib/gems/railties-4.2.5/lib/rails/test_unit/sub_test_task.rb:20:in `invoke_rake_task'
./bundle/lib/gems/railties-4.2.5/lib/rails/test_unit/testing.rake:8:in `block in   <top (required)>'
Tasks: TOP => test:run
(See full trace by running task with --trace)

Файл crud_test.rb содержит это:

cat test/concepts/ar_invoice/crud_test.rb

class ARInvoiceCrudTest < MiniTest::Spec
  describe( "Create" ) do
    it( "persists valid" ) do
      ar_invoice = ARInvoice::Create.(
        :ar_invoice => { :invoice_number => 101,
                         :client_number => 1234
        }
      ).model

      ar_invoice.persisted?.must_equal( true )
      ar_invoice.invoice_number.must_equal( 102 )
      ar_invoice.client_number.must_equal( 5678 )
    end
  end
end

И.test/test_helper.rb выглядит так:

cat test/test_helper.rb

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

require 'rails/test_help'
require 'minitest/spec'
require "minitest/autorun"

require "trailblazer/rails/test/integration"

А также env | grep RAILS_ENV не производит никакого вывода.

Что еще мне не хватает в настройке? Не должен бегать bundle rake test просто взять файл crud_test.rb и запустить тест идентично тому, когда файл явно указан в командной строке?

1 ответ

Решение

Это ответ:

И, конечно, добавить require 'test_helper' в верхней части каждого файла теста!

Другие вопросы по тегам