2015-08-25 4 views
1

Я использую Ruby 2.2. Мне нужно запустить единичный тест и получить информацию, если это удалось или не удалось. Я просматриваю документы как тестового блока, так и minitest (предлагаемые камни для модульного тестирования в Ruby 2.2), но я не могу найти способ, который бы возвращал или хранил где-нибудь информацию о результатах теста.Тестирование блоков Ruby - результат теста доступа (успех/отказ)?

Все, что мне нужно, это информация о том, прошел тест/не удалось, и мне нужно получить к нему доступ с уровня Ruby. Я предполагаю, что мне пришлось бы использовать конкретный метод для запуска теста - пока я смог запустить только один тест, запустив тестовый файл, а не вызвав какой-либо метод.

Возможно, это просто мое плохое знание Ruby, во всяком случае, я был бы признателен за любую помощь.

+0

Вы хотите программно запустить тесты? Я имею в виду, что обычно тест pass/fail сообщается либо файлу, либо консоли, либо и тому и другому. –

+0

Я бы предпочел получить к нему доступ на уровне Ruby. Если это невозможно, то файл - но я думаю, что это было бы в текстовой форме, как результат на консоли? Мне нужно подготовить статистику о количестве неудачных тестов, я бы предпочел исключить синтаксический анализ такого вывода. Я не знаю, как сохранить результат в файле. – charlie

+0

Похоже, вы можете рассмотреть существующее решение CI, чтобы избежать дублирования того, что они уже делают, но YMMV. –

ответ

1

Возможно, вы сможете запускать тесты, используя возможность Ruby запускать команду оболочки и возвращать результаты.

Вот пример для test-unit:

test_output = `ruby test.rb --runner console --verbose=progress` 

failed_tests = test_output.chomp.split('').count('F') 
passed_tests = test_output.chomp.split('').count('.') 

puts "P: #{passed_tests}, F: #{failed_tests}" 

Мы используем --verbose=progress вариант, так что мы получаем минимальный выход. Это будет выглядеть примерно так, как показано ниже:

.F...F 

Рассчитывает количество F, чтобы выяснить, сколько тестов не удались. Для пробного выхода программа программы напечатает:

P: 4, F: 2 
+1

Спасибо! Это не то, как я себе это представлял, но, похоже, это трюк, так что большое спасибо :) – charlie

 Смежные вопросы

  • Нет связанных вопросов^_^