5

几个月以来,我在 Rails 应用程序中成功使用了 spork 和 rspec。现在我尝试将茉莉花添加到这个游戏中,所以我添加到了我的 Gemfile

gem 'headless'
gem 'jasmine'
gem 'jasmine-rails'

Jasmine 在独立模式下运行良好,但每次运行都需要启动 firefox,这对用户不是很友好,我注意到它可以与 spork 一起使用。但是当我启动 spork 时

Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
No runner found, attempting to compile...
make: *** No rule to make target `clean'.  Stop.
which: no gmake in (/usr/lib/ruby/gems/1.9.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/bin:/opt/java/db/bin:/usr/bin/core_perl:/opt/qt/bin:/home/user/.gem/ruby/1.9.1/bin/)
which: no qmake-qt4 in (/usr/lib/ruby/gems/1.9.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/bin:/opt/java/db/bin:/usr/bin/core_perl:/opt/qt/bin:/home/user/.gem/ruby/1.9.1/bin/)
Failure to open file: /usr/lib/ruby/gems/1.9.1/gems/jasmine-headless-webkit-0.8.4/ext/jasmine-webkit-specrunner/Makefile
Unable to generate makefile for: specrunner.pro
true
/usr/lib/ruby/1.9.1/fileutils.rb:1371:in `initialize': Permission denied - /usr/lib/ruby/gems/1.9.1/gems/jasmine-headless-webkit-0.8.4/ext/jasmine-webkit-specrunner/Makefile (Errno::EACCES)
from /usr/lib/ruby/1.9.1/fileutils.rb:1371:in `open'
from /usr/lib/ruby/1.9.1/fileutils.rb:1371:in `block in copy_file'
from /usr/lib/ruby/1.9.1/fileutils.rb:1370:in `open'
from /usr/lib/ruby/1.9.1/fileutils.rb:1370:in `copy_file'
from /usr/lib/ruby/1.9.1/fileutils.rb:477:in `copy_file'
from /usr/lib/ruby/1.9.1/fileutils.rb:396:in `block in cp'
from /usr/lib/ruby/1.9.1/fileutils.rb:1515:in `block in fu_each_src_dest'
from /usr/lib/ruby/1.9.1/fileutils.rb:1531:in `fu_each_src_dest0'
from /usr/lib/ruby/1.9.1/fileutils.rb:1513:in `fu_each_src_dest'
from /usr/lib/ruby/1.9.1/fileutils.rb:395:in `cp'
from extconf.rb:10:in `<main>'
Permission denied - /usr/lib/ruby/gems/1.9.1/gems/jasmine-headless-webkit-0.8.4/ext/jasmine-webkit-specrunner/jasmine-webkit-specrunner (Errno::EACCES)

有什么办法解决这个问题吗?有没有其他选择可以对茉莉花进行背景测试?

我用 :

  • archlinux
  • 红宝石 1.9.3p327
  • 导轨 3.2.8
  • spork 0.9.2
  • 茉莉花1.3.1
4

3 回答 3

1

我建议使用https://github.com/netzpirat/guard-jasmine

您最终将不得不安装 phantomJS(可能还有 guard),但 guard-jasmine 基本上会监控您的 jasmine 规格,并且每当发生更改时,它都会在控制台中运行您的测试。如果需要,它还提供了一个包装器来在浏览器中运行 jasmine。

于 2012-12-19T07:02:33.710 回答
1

你的 qmake 和 qmake-qt4 是什么版本?您可以通过运行qmake-qt4 -v和来获取它们qmake -v

显然,您需要为 jasmine-headless-webkit 安装 Qt 4.7 版本。您可能安装了较低版本。检查此问题:未找到运行器,正在尝试编译...

请参考此处的注释,尝试升级到较新版本的 Qt 。

于 2012-12-15T02:13:57.783 回答
1

还有另一种避免打开 Firefox-PhantomJS 的方法。它取代了需要使用 Firefox 的 Selenium 驱动程序。PhantomJS 使用另一种方法 - WebKit 的无头版本。您可以通过查看此 Railscast获得更多有用的信息。

于 2012-12-14T10:07:11.880 回答