Сбой первого модульного теста, если работает через грабли - PullRequest
0 голосов
/ 06 августа 2011

У меня Rakefile в моем проекте.

mt_server_dir = File.expand_path('vendor/murder_traffic_server')

Rake::TestTask.new("test_vendor") do |t|
  chdir mt_server_dir
  t.libs = [mt_server_dir]
  t.test_files = Dir["#{mt_server_dir}/tests/test_*"]
  t.warning = true
end

Когда я запускаю тесты

rake test_vendor

Первый тест в списке, всегда fail .

С ошибкой.

test_ip.rb:55: warning: instance variable @ip not initialized

Это значит, не выполнять метод настройки в первом тесте.

Когда я запускаю тест напрямую.

ruby test_ip.rb

Тест пройден успешно.

Я попытался переименовать первый тест в test_zip.rb, и когда я запускаю тест через rake, тест прошел успешно, но первый в списке test_dns.rb не пройден.*

Кто знает, как это исправить?

Спасибо.

1 Ответ

2 голосов
/ 06 августа 2011

Я проверил исходный код вашего приложения на Github.

Ваш test_ip.rb файл определяет class TestIp < Test::Unit::TestCase, как и должно быть. Однако, ваш test_dns.rb файл также определяет class TestIp < Test::Unit::TestCase, тогда как он должен определять class TestDns. Поскольку этот файл также имеет def setup, этот метод установки переопределяет test_ip. Вот почему вы видите эту ошибку:

/home/dylan/dev/Murder-traffic/vendor/murder_traffic_server/tests/test_dns.rb:7: warning: method redefined; discarding old setup
/home/dylan/dev/Murder-traffic/vendor/murder_traffic_server/tests/test_ip.rb:7: warning: previous definition of setup was here

Итак, исправьте объявление класса в вашем файле test_dns.rb, и все должно работать.

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