Использование Spork с жасмином в рельсах
Уже несколько месяцев я успешно использую spork с rspec в приложении rails. Теперь я пытаюсь добавить жасмин в эту игру, поэтому я добавил в свой Gemfile
gem 'headless'
gem 'jasmine'
gem 'jasmine-rails'
Жасмин очень хорошо работает в автономном режиме, но он требует запуска 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
- спорк 0.9.2
- жасмин 1.3.1
3 ответа
Я бы порекомендовал использовать https://github.com/netzpirat/guard-jasmine.
В конечном итоге вам придется установить phantomJS (и, возможно, тоже guard), но guard-jasmine в основном следит за вашими спецификациями жасмина и всякий раз, когда происходит изменение, он запускает ваши тесты в консоли. Он также предоставляет оболочку для запуска жасмина в браузере, если это необходимо.
Какие версии у вас есть qmake и qmake-qt4? Вы можете получить их, запустив qmake-qt4 -v
а также qmake -v
,
По-видимому, вам нужна версия Qt 4.7, установленная для jasmine-headless-webkit. Возможно, у вас установлена более низкая версия. Проверьте эту проблему: бегун не найден, пытаясь скомпилировать...
Попробуйте перейти на более новую версию Qt, обратившись к заметкам здесь.
Есть еще один способ избежать открытия Firefox - PhantomJS . Он заменяет драйвер Selenium, который должен использовать Firefox . PhantomJS использует другой подход - безголовую версию WebKit . Вы можете получить более полезную информацию, взглянув на этот Railscast.