Socket
Socket
Sign inDemoInstall

jasmine-istanbul-reporter

Package Overview
Dependencies
18
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    jasmine-istanbul-reporter

Jasmine report plugin that scrapes test pages for istanbul coverage stats and writes them to a set of files for eventual conversion to LCOV, Cobertura, etc.


Version published
Weekly downloads
34
decreased by-5.56%
Maintainers
1
Install size
419 kB
Created
Weekly downloads
 

Readme

Source

jasmine-istanbul-reporter

Build Status

what

Jasmine report plugin that scrapes test pages for istanbul coverage stats and writes them to a set of files for eventual conversion to LCOV, Cobertura, etc.

why

Because nothing else like this exists, as far as I could find. The biggest thing here is that this works for the weird niche of Jasmine + Selenium with no ties to build tools like Protractor, Karma, Grunt or Gulp. If you're using those tools, you may be best off to use what is already built for those, as those employ nice techniques like coverage ports, etc.

how

Simple adds in a Jasmine report hook that saves the Istanbul __coverage__ variable to a file after every spec finishes. To get around functions in tests that may wipe out the __coverage__ variable, it lets you provide a list of functions to wrap in a coverage preservation hook to get around this.

To use it, provide it with some options:

  • outputPath - defaults to '.' - this will save a bunch of uuid.v4() named json files to that directory
  • functionBindingList - an array of objects of the form { 'methodName' : parentObject } these will be re-bound with a decorator/wrapper that preserves coverage across their call. This may be re-worked some day to provide an easier syntax
  • driver - a selenium-webdriver.WebDriver implementation, such as Chrome, Firefox, etc. This is usually avaiable if you're setting up a Jasmine reporter.

example

Here is a brief example of setting up the reporter with Jasmine to dump files in a directory called coverage and wrap a function called page.clearVariables. A driver is also provided from out of the ether.

var JasmineIstanbulReporter = require('jasmine-istanbul-reporter');
...
jasmine.getEnv().addReporter(new JasmineIstanbulReporter({
  outputPath: './coverage',
  functionBindingList: [{'clearVariables': page}],
  driver: browser.driver
}));

You could then scrape in all of the coverage/*.json files using Istanbul to provide a human or machine readable report (HTML, LCOV, etc.).

istanbul report --include=coverage/*.json

TODO

  • as this reporter is called as a synchronous utility, there is definitely some concern with this. for instance, a recent fix had to do a sync write to file, as sometimes these were getting interrupted halfway through the write. heavily leaning towards converting all calls to sync.
  • the tests are an absolute mess right.

Keywords

FAQs

Last updated on 13 Jul 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc