Zentest - Как остановить автоматическое тестирование, когда красный - PullRequest
5 голосов
/ 20 июня 2011

Я пытаюсь настроить автотест так, чтобы при запуске моего набора тестов, когда у меня был неудачный тест, автотест прекращал тестирование и ждал, пока я внесу изменения, прежде чем тестировать снова.С моей текущей конфигурацией автотест продолжает неопределенное тестирование, когда он сталкивается с ошибочным тестом, из-за чего приходится сталкиваться с трудностями (приходится вкладывать в терминал и останавливать сервер автотеста каждый раз, когда я получаю неудачный тест).

Я работаю над приложением 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 ]

4 голосов
/ 25 сентября 2011

У меня была такая же проблема, и я обнаружил, что мой сервер разработки записывает в файл журнала. После того как я добавил это в мой файл .autotest, проблема исчезла:

Autotest.add_hook :initialize do |at|
  at.add_exception(%r{^\./\.git})
  at.add_exception(%r{^\./log})
end
1 голос
/ 13 июля 2011

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

Я разыскал проблему, изменив уведомления Growl, чтобы сообщить, какие файлы запускают автоматический тест (в то время я работал на Mac).

Решением было добавить исключение / исключение в файл .autotest, чтобы он игнорировал индекс.

(Я только что видел: Spork постоянно повторяет неудачные тесты при автотесте , что звучит очень похоже на вашу проблему)

...