автоматическое тестирование не прекратится после сбоя теста? - PullRequest
8 голосов
/ 27 июня 2011

Вот мой гемфайл

source 'http://rubygems.org'

gem 'rails', '3.0.9'
gem 'mysql2', '~> 0.2.6'

group :development do
  gem 'rspec-rails'
end

group :test do
  gem 'rspec'
end

Довольно просто и ничего необычного.При прохождении теста автотест работает отлично и останавливается, как и должно

Finished in 0.1158 seconds
4 examples, 0 failures
/Users/alex/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -rrubygems -S /Users/alex/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rspec-core-2.6.4/bin/rspec --tty '/Users/alex/Sites/slacklog/spec/controllers/pages_controller_spec.rb'

, но при неудачном тесте возникает бесконечный цикл, который продолжает давать сбой

Failures:

  1) PagesController GET 'contact' Should have the proper title for the contact page
     Failure/Error: response.should have_selector( "contact",
       expected following output to contain a <contact>Contact us</contact> tag:
       <!DOCTYPE html>
       <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
       <title>Slacklog</title>
       <script src="/javascripts/jquery.js" type="text/javascript"></script><script src="/javascripts/jquery_ujs.js" type="text/javascript"></script><script src="/javascripts/application.js?1309037322" type="text/javascript"></script>
       </head>
       <body>

       <h1>Pages#contact</h1>
       <p>Find me in app/views/pages/contact.html.erb</p>


       </body>
       </html>
     # ./spec/controllers/pages_controller_spec.rb:32:in `block (3 levels) in <top (required)>'

Finished in 0.16647 seconds
5 examples, 1 failure

Failed examples:

rspec ./spec/controllers/pages_controller_spec.rb:30 # PagesController GET 'contact' Should have the proper title for the contact page
/Users/alex/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -rrubygems -S /Users/alex/.rvm/gems/ruby-1.9.2-p180@rails3/gems/rspec-core-2.6.4/bin/rspec --tty '/Users/alex/Sites/slacklog/spec/controllers/pages_controller_spec.rb'
...F.

Failures:

Он продолжает повторяться

как мне остановить это поведение

Ответы [ 3 ]

4 голосов
/ 05 августа 2011

Есть дублирующий вопрос, который имеет правильное исправление: Автотест с бесконечным циклом

Ответ также не исправил меня, но это было потому, что я использовал webrat и webrat.log был создан, вызывая перезапуск тестов.Поэтому я изменил их ответ, включив в него webrat.log

Вот измененное решение:

Я нашел решение.Возможно, это связано с тем, что OSX (работает на Leopard) изменяет файл .DS_Store в папке или другой временный файл.Добавление следующего в мой .autotest сделало свое дело (это также предотвращает автоматическое тестирование просмотра папки индекса, сгенерированной Ferret).

Autotest.add_hook :initialize do |at|
  %w{.git webrat.log vendor index .DS_Store ._}.each {|exception| at.add_exception(exception)}
end
3 голосов
/ 29 июня 2011

У меня была такая же проблема.Попробуйте удалить ваш ZenTest гем и переустановить его через зависимости как:

sudo gem install autotest-rails
sudo gem install rspec-rails
2 голосов
/ 29 марта 2012

Просто исправил это, добавив следующее в мои .autotest Я знаю, что это довольно поздно, но я надеюсь, что это кому-нибудь поможет: -)

at.add_exception %r{^./log}

Мой .autotest теперь выглядит как

# ./.autotest
Autotest.add_hook(:initialize) {|at|
  at.add_exception %r{^\.git}  # ignore Version Control System
  at.add_exception %r{^./tmp}  # ignore temp files, lest autotest will run again, and again...
  at.add_exception %r{^./spec/controllers}  # ignore controllers until cache has been fixed. auto test taking too long for now
  at.add_exception %r{^./log}  # ignore temp files, lest autotest will run again, and again...


  #  at.clear_mappings         # take out the default (test/test*rb)
  at.add_mapping(%r{^lib/.*\.rb$}) {|f, _|
    Dir['spec/**/*_spec.rb']
  }
  nil
}

require 'autotest/inotify'
...