РЕДАКТИРАНЕ: Проблемът беше, че все още използвахме rspec и не можете да използвате спецификацията DSL в minitest, докато все още използвате rspec.
Използвам minitest 4.7 с rails 4.0 и autotest-rails 4.2.1 и беше страхотен с тестове, които приличат на test::unit. Въпреки това се опитвам да го накарам да изпълнява спецификации в стила на rspec и нито autotest, нито rake test:models
са открили някоя от спецификациите.
Ето резултата (с премахнати неоправдани предупреждения), когато актуализирам rating_test.rb:
/opt/boxen/rbenv/versions/2.0.0-p247/bin/ruby -I.:lib:test -rubygems -e "%w[minitest/autorun test/models/rating_test.rb].each { |f| require f }"
Run options: --seed 28285
# Running tests:
Finished tests in 0.003822s, 0.0000 tests/s, 0.0000 assertions/s.
0 tests, 0 assertions, 0 failures, 0 errors, 0 skips
Пише, че няма нищо. Ето rating_test.rb:
require 'test_helper'
describe Rating do
let(:rating) {Rating.new(score: score, category: category)}
let(:score) { 100 }
let(:category) {Rating.categories[0]}
describe "score" do
it "can be 100" do
puts "this doesn't show up"
rating.valid?.should == true
assert_equal true, rating.valid?
end
end
end
Както можете да видите, опитах както прост път (който не се показва), така и двата стила твърдения (нито един от които не се открива от автоматичното стартиране).
Единственото нещо, в което не съм сигурен, е дали моят test_helper е правилен. Създадох своя, като съчетах инструкциите Readme и тази статия, което странно конфликт, тъй като са написани от един и същ автор.
Ето моя файл test_helper.rb.
ENV["RAILS_ENV"] = "test"
require File.expand_path("../../config/environment", __FILE__)
require "rails/test_help"
require "minitest/spec"
require "minitest-matchers"
require "email_spec"
class ActiveSupport::TestCase
fixtures :all
extend MiniTest::Spec::DSL
register_spec_type self do |desc|
desc < ActiveRecord::Base if desc.is_a? Class
end
end