Zentest - Как остановить автоматическое тестирование, когда красный
Я пытаюсь настроить автотест таким образом, чтобы при запуске моего набора тестов и при неудачном тестировании автотест прекращал тестирование и ждал, пока я внесу изменения, прежде чем проводить повторное тестирование. С моей текущей конфигурацией автотест продолжает тестировать неопределенно, когда он сталкивается с ошибочным тестом, из-за чего приходится сталкиваться с трудностями (приходится вставлять на терминал и останавливать сервер автотеста каждый раз, когда я получаю неудачный тест).
Я работаю над приложением rails, используя RSpec, Zentest и Spork.
Соответствующие версии Gem:
autotest (4.4.6)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
spork (0.9.0.rc8)
ZenTest (4.5.0)
Мой файл.autotest:
module Autotest::Notify
def self.notify title, msg, img, pri='low', time=3000
`notify-send -i #{img} -u #{pri} -t #{time} '#{msg}'`
end
Autotest.add_hook :ran_command do |autotest|
results = [autotest.results].flatten.join("\n")
output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/)
folder = "~/.autotest_icons/"
if output =~ /[1-9]\d*\sfailures?/
notify "FAIL:", "#{output}", folder+"failed.png", 'critical', 10000
elsif output =~ /[1-9]\d*\spending?/
notify "PENDING:", "#{output}", folder+"pending.png", 'normal', 10000
else
notify "PASS:", "#{output}", folder+"passed.png"
end
end
end
Примечание. Большая часть моего файла.autotest заключалась в том, чтобы заставить всплывающие окна работать в linux для отображения, если мои тесты пройдены или не пройдены.
Я некоторое время искал ответ на эту проблему, но мне не повезло, и мне было очень трудно достать хорошую документацию для автотеста. Я уже давно смотрю на RDoc для Zentest, и я просто что-то упускаю.
Любая помощь, ссылки на примеры и т. Д., Будет принята с благодарностью.
2 ответа
У меня была та же проблема, и я обнаружил, что мой сервер разработки записывает в файл журнала. После того как я добавил это в мой файл.autotest, проблема исчезла:
Autotest.add_hook :initialize do |at|
at.add_exception(%r{^\./\.git})
at.add_exception(%r{^\./log})
end
Я видел аналогичную проблему с ZenTest, когда у меня был гем, который записывал данные в каталог, который отслеживал ZenTest. IIRC, это был драгоценный камень, который выполнял полнотекстовый поиск - файл индекса, сгенерированный поиском, запускал ZenTest снова, тем самым восстанавливая индекс.
Я разыскал проблему, изменив уведомления Growl, чтобы сообщить мне, какие файлы запускают автоматический тест (в то время я работал на Mac).
Решением было добавить исключение / исключение в файл.autotest, чтобы он игнорировал индекс.
(Я только что видел: Spork повторно запускает неудачные тесты в автотесте, что очень похоже на вашу проблему)