Last Updated: April 13, 2020
·
3.594K
· calamari

Make jasmine:ci use phantomjs (under Rails)

If you write [jasmine][jasmine] specs within your rails app you probably know, that rake jasmine will start a webrick server serving your jasmine test suite under localhost:8888. You also probably know that you also can run your test suite using a selenium driver with the rake jasmine:ci command. This will start a server, spawn of a [firefox][firefox] instance that navigates to the test suite and after it has run, it will tell in your console if it failed or succeeded.

Making it headless

But running firefox is slow. You really want to use a headless browser for testing it. It's also good for [jenkins]jenkins. So, why not use [PhantomJS][phantomjs]?

You do not know how?

Well, I didn't really do either, until yesterday when a colleague finally looked into the [jasmine-gem code][jasminegem]. It's simple (but undocumented), so here it goes:

Install PhantomJS and then add a file called spec/javascripts/support/jasmine_helper.rb into your rails app with the following contents:

Jasmine.configure do |config|
  config.browser = :phantomjs
end

Thats it. Just runrake jasmine:ci` and see for yourself.

[jasmine]: http://pivotal.github.io/jasmine/
[firefox]: http://www.mozilla.org/firefox/
[jenkins]: http://jenkins-ci.org/
[phantomjs]: http://phantomjs.org/
[jasminegem]: https://github.com/pivotal/jasmine-gem

1 Response
Add your response

Doing this on Ubuntu 12.04, hit a problem with Jasmine server not being found. Turned out I had an OLD version of PhantomJS (1.4) via apt package manager - so do make sure you get a later version from the site (1.9.1, currently).

Great tip - just what I was after

over 1 year ago ·

Have a fresh tip? Share with Coderwall community!

Post
Post a tip