1

当我尝试在我的警卫设置或独立的警卫茉莉命令中运行警卫茉莉花时,我收到此错误

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测试时,它显示正常(测试当前按预期失败)。知道是什么导致了警卫

后记:

原来这是一个 phantomjs 问题。@netzpirat在下面他的回答中的评论中正确地诊断了它。我使用的是 Ubuntu,其最新的 phantomjs 版本是 1.4。那里发生了“无法打开”错误(可能与此错误有关?)。为了解决这个问题,我找到了一个具有 1.5 的 PPA并从那里安装它(它也可直接用于更多架构这里)。那解决了它。

4

1 回答 1

2

当您使用 Jasminerice 通过资产管道提供 Jasmine 规范时,http://localhost:8888/jasmine默认情况下 URL 是。由于这也是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为本地开发和testCI 服务器上。

于 2012-06-18T17:36:42.317 回答