当我尝试在我的后卫设置或独立的guard-jasmine命令中运行guard-jasmine时,我收到此错误
Guard::Jasmine starts thin test server on port 8888 in test environment.
Waiting for Jasmine test runner at http://example.com:8888/
Run Jasmine suite spec/javascripts/credit_card_spec.js
Run Jasmine suite at http://example.com:8888/?spec=CreditCard
Can't open '/home/yuvilio/.rvm/gems/ruby-1.9.3-p194@agilerails/bundler/gems/guard-jasmine-0fd614d12263/lib/guard/jasmine/phantomjs/guard-jasmine.coffee'
ERROR: No response from the Jasmine runner!
奇怪的是,'guard-jasmine.coffee'文件确实存在并且看起来很好。
我的Gemfile包括:
group :test, :development do
#...
gem 'guard-jasmine', :git => "https://github.com/netzpirat/guard-jasmine.git", :branch => 'master'
gem 'jasminerice', :git => "https://github.com/bradphelan/jasminerice.git", :branch => 'master'
gem 'jasmine'
end
我的Guardfile包括:
guard 'jasmine', :all_on_start => false, :server => :thin, :port => 8888, :jasmine_url => 'http://localhost:8888/', :server_env => :test do
watch(%r{spec/javascripts/spec\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
watch(%r{spec/javascripts/.+_spec\.(js\.coffee|js|coffee)$})
watch(%r{app/assets/javascripts/(.+?)\.(js\.coffee|js|coffee)$}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
end
当我运行rake jasmine
并浏览到http://example.com:8888/?spec=CreditCard测试时,它显示正常(测试当前按预期失败)。不知道是什么导致了后卫
后记:
这结果是一个幻影问题。 @netzpirat在a comment in his answer below中正确诊断出来了。我使用的是Ubuntu,其最新的phantomjs是版本1.4。那里发生了“无法打开”错误(或许与this bug相关?)。为了解决这个问题,我找到了PPA that had 1.5并从那里安装了它(它也可以直接用于更多架构here)。修好了。
答案 0 :(得分:2)
当您使用Jasminerice通过资产管道提供Jasmine规范时,默认情况下URL为http://localhost:8888/jasmine
。由于这也是guard-jasmine默认值,您可以跳过该选项(默认端口8888):
guard 'jasmine', :all_on_start => false, :server => :thin, :server_env => :test do
watch(%r{spec/javascripts/spec\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
watch(%r{spec/javascripts/.+_spec\.(js\.coffee|js|coffee)$})
watch(%r{app/assets/javascripts/(.+?)\.(js\.coffee|js|coffee)$}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
end
我选择development
作为:server_env
的默认值的原因是,您将看到发生错误的真实文件名。我建议将其设置为development
以进行本地开发,并将test
设置为CI服务器。