не удается заставить запуск тестового модуля работать в ruby 1.9.2

#ruby #testunit #minitest

#ruby #testunit #minitest

Вопрос:

Я использую Ruby 1.9.2 (ruby -v дает: ruby 1.9.2p290 (2011-07-09 редакция 32553) [x86_64-linux]), и я пытаюсь заставить это работать:

 require 'test/unit'

class TestStartup < Test::Unit::TestCase
  def self.startup
    puts "startup"
  end
  def test1
    puts "in test1"
  end
end 
  

когда я запускаю его, я получаю

 Loaded suite test_startup
Started
in test1
.
Finished in 0.000395 seconds. 


1 tests, 0 assertions, 0 failures, 0 errors, 0 skips
  

Мне было трудно найти документацию по этой функции, кроме разрозненных сообщений здесь, на SO и тому подобное.

И да, я хочу использовать эту функцию, а не настройку.

TIA

Комментарии:

1. test-unit.rubyforge.org/test-unit/Test/Unit/TestCase.html упоминает, что это так def self.startup , а не def startup так, так что проблема была не в этом.

Ответ №1:

Ruby 1.9.x связывает minitest не с Test::Unit. Test::Unit, включенный в Ruby 1.8.x, не был улучшен, но разделенный Test::Unit (test-unit 2) будет активно улучшаться.

Значит, вы должны использовать драгоценный камень Test::Unit? Возможно, это более старая версия, которая не поддерживает эту функцию?

Комментарии:

1. У меня был установлен тестовый модуль, но поскольку мой код не выполнял то, что я хотел, я попытался удалить его, чтобы посмотреть, поможет ли это, но это не имело никакого значения. Итак, если это работает в тестовом модуле, как мне на самом деле использовать test-unit, а не test / unit? Когда я использую «require ‘test-unit’ (после установки gem, test-unit), я получаю сообщение об ошибке.

2. Неважно, нашел страницу, которая показывает, как это сделать: gem «test-unit» (затем) требует ‘test / unit’

3. @user119282: если ваш ответ был решен, не забудьте отметить этот ответ как принятый, когда вы сможете это сделать.

4. У меня была похожая проблема. Мне пришлось применить решение пользователя 119282 о вызове gem «test-unit» везде в моем коде, где мне требовался «test / unit». В противном случае, если бы в первом месте, где был указан требуемый код, отсутствовал вызов gem «test-unit», тогда он все равно использовал бы старый код и не работал.

Ответ №2:

Ruby 1.9.2 по умолчанию использует Minitest вместо Test::Unit, так что, возможно, эта функция отсутствует в Minitest.

Комментарии:

1. То, что вы сказали, похоже на правду.

2. Я рад, что нашел этот ответ, иначе мне пришлось бы беспокоить человека, сидящего рядом со мной. Спасибо!