Почему «тесты рейка» запускают пустой пакет, когда я использую musta? - PullRequest
0 голосов
/ 01 апреля 2010

Итак, вот мой набор тестов:

class ReleaseTest < ActiveSupport::TestCase
  should_not_allow_values_for :title, '', 'blah', 'blah  blah'
  should_allow_values_for :title, 'blah - bleh', 'blah blah - bleh bleh'
  def test_something
    assert true
  end
end

Если макросы генерируют 5 тестов, то у меня есть test_something ниже (просто чтобы посмотреть, имеет ли это значение), всего 6 тестов Все они проходят, как вы можете видеть ниже, но затем запускается набор из 0 тестов. Это происходит, даже если я полностью опустошу ReleaseTest. Эта проблема существует, только если у меня есть config.gem 'shoulda' в моем environment.rb. Если я явно делаю require 'shoulda' в начале моих тестов, все работает нормально. Что будет причиной этого?

/usr/bin/ruby -e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift) /var/lib/gems/1.9.1/bin/rake test
Testing started at 6:58 PM ...
(in /home/rlepidi/projects/rails/testproject)
/usr/bin/ruby1.9.1 -I"lib:test" "/var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/unit/release_test.rb" 

Loaded suite /var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
......
Finished in 0.029335778 seconds.
6 tests, 6 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

/usr/bin/ruby1.9.1 -I"lib:test" "/var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb"  
/usr/bin/ruby1.9.1 -I"lib:test" "/var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb"  

Loaded suite /var/lib/gems/1.9.1/bin/rake
Started
Finished in 0.000106717 seconds.
0 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
0% passed
Empty test suite.

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

По какой-то причине проблема заключалась в том, что мне нужно было установить test-unit, так как я использую Ruby 1.9. Я слышал, что это потому, что Test::Unit больше не включен в 1.9, но я не понимаю этого, потому что похоже, что мои тесты все еще работали правильно (и у меня не было этого драгоценного камня).

0 голосов
/ 04 декабря 2010

На случай, если у кого-то еще возникла эта проблема:

У меня была эта проблема, потому что я использовал камень assert2. Смотрите мое сообщение в блоге "Почему я перестал использовать assert {2.0}" . Установка test-unit не решила проблему для меня; Вместо этого я удалил assert2 из моего Gemfile.

Редактировать: Видимо, оболочка Test :: Unit Minitest (и предположительно оригинальный Test :: Unit) автоматически устанавливает обработчик выхода для запуска тестов. (Не правда ли? ;-)) Так что эта проблема «пустого набора тестов» может возникнуть в любой ситуации, когда обработчик выхода был зарегистрирован случайно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...