Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jasmine with jscoverage automated testing

Had been looking at the jsunit and jcoverage demos here (click on coverage report link. Open this in a new tab).

I was wondering if any one had done anything similar with Jasmine and JSCoverage ? I'm a little unsure on how to proceed.

[EDIT] I am wondering if there is something I can do with a jasmine reporter. My Jasmine "hello world" example makes reference to a TrivialReporter. Maybe this can be extended ??

[EDIT] I've wired up js-test-runner with jasmine right now. Now If I could think of a way to get coverage ??

like image 332
wmitchell Avatar asked Dec 06 '10 16:12

wmitchell


2 Answers

If you're working on a ruby project and using jasmine via jasmine-gem, I have a patch that adds jscoverage support[1].

If you're using bundler, you can use this version of jasmine with the following command in your Gemfile:

  gem 'jasmine',
    :git        => 'git://github.com/hjdivad/jasmine-gem',
    :submodules => true,
    :branch     => 'jscoverage'

Make sure you've downloaded jscoverage and it's in your $PATH.

You can then add the following to jasmine.yml

coverage:
  enabled:    true
  encoding:   utf-8
  tmp_dir:    tmp
  report_dir: public/coverage
  skip_paths:
    - public/javascripts/vendor

If this works for you, you may want to speak up on the pull request[2] to get it, or some variation, into jasmine-gem proper.

  • [1] https://github.com/hjdivad/jasmine-gem/tree/jscoverage
  • [2] https://github.com/pivotal/jasmine-gem/pull/37
like image 62
hjdivad Avatar answered Oct 10 '22 22:10

hjdivad


If you're not using the jasmine-gem, or don't want to have to run a server to check coverage, I've written a gem that pulls together jscoverage and jasmine. It can run as a rake task in your CI builds.

It can be found here: https://github.com/firstbanco/jasmine-coverage

Install it, then just run

bundle exec rake jasmine:coverage

You're done.

EDIT: As the author of jasmine-coverage, I feel duty bound to to tell you about a better alternative: teaspoon. It requires more setup, but also allows running in the browser so you can use the Chrome debugger.

like image 21
hlascelles Avatar answered Oct 11 '22 00:10

hlascelles