2011-06-26 100 views
8

这里是我的Gemfile测试失败后,自动测试不会停止?

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/[email protected]/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/[email protected]/gems/rspec-core-2.6.4/bin/rspec --tty '/Users/alex/Sites/slacklog/spec/controllers/pages_controller_spec.rb' 
...F. 

Failures: 

它不断重复

如何停止此行为

回答

3

我有同样的问题。 尝试卸载ZenTest的宝石,并通过依赖关系重新安装:

sudo gem install autotest-rails 
sudo gem install rspec-rails 
+0

没有为我解决任何问题。 – staackuser2

4

有是有适当的修复重复的问题: Autotest inifinitely looping

答案没有解决它的我。但这是因为我正在使用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 
2

通过将在下面的只是固定它我.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' 
+0

感谢您的回答,这对我有效! (没有要求'autotest/inotify') – lambinator

+0

很高兴听到@SteveLamb :-) – Abdo