hubba / grunt-jasmine-node-coverage

Grunt task for running jasmine-node

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

grunt-jasmine-node-coverage

Runs jasmine-node with Istanbul code coverage

Dependency Status devDependency Status Build Status Built with Grunt Analytics

A Grunt task to run your Jasmine feature suite using jasmine-node and Istanbul for code coverage reports.

Getting Started

Install this grunt plugin next to your project's Gruntfile.js with:

npm install grunt-jasmine-node-coverage --save-dev

Then add these lines to your project's Gruntfile.js configuration file:

grunt.initConfig({
  jasmine_node: {
    task_name: {
      options: {
        coverage: {},
        forceExit: true,
        match: '.',
        matchAll: false,
        specFolders: ['tests'],
        extensions: 'js',
        specNameMatcher: 'spec',
        captureExceptions: true,
        junitreport: {
          report: false,
          savePath : './build/reports/jasmine/',
          useDotNotation: true,
          consolidate: true
        }
      },
      src: ['**/*.js']
    }
  }
});

grunt.loadNpmTasks('grunt-jasmine-node-coverage');

grunt.registerTask('default', 'jasmine_node');

Configuring tasks

Grunt tasks should be configured by following the multi task configuration form, thus wrapping each configuration in an object inside the jasmine_node root object.

Task configuration options

Most of the options are passed throught to jasmine-node.

options.projectRoot

Type: string

Default: process.cwd()

See http://nodejs.org/api/process.html#process_process_cwd

options.specFolders

Type: array

Default: [options.projectRoot]

List of folders in which any specs are looked for.

options.useHelpers

Type: boolean

Default: false

options.coverage

Type: boolean|object

Default: false

Istanbul specific configuration. Use empty object, {} to use the defaults that are shown below.

{
  reportFile: 'coverage.json',
  print: 'summary', // none, summary, detail, both
  relativize: true,
  thresholds: {
    statements: 0,
    branches: 0,
    lines: 0,
    functions: 0
  },
  reportDir: 'coverage',
  report: [
    'lcov'
  ],
  collect: [ // false to disable, paths are relative to 'reportDir'
    '*coverage.json'
  ],
  excludes: []
}

Please note that excludes list will always be added '**/node_modules/**' internally.

options.showColors

Type: boolean

Default: false

options.isVerbose

Type: boolean

Default: true

When true and options.teamcity is false, will use TerminalVerboseReporter, else TerminalReporter.

options.forceExit

Type: boolean

Default: false

Exit on failure by skipping any asyncronous tasks pending.

options.match

Type: string

Default: '.'

used in the beginning of regular expression

options.matchAll

Type: boolean

Default: false

When true, options.specFolders and options.specNameMatcher are ignored while building the options.regExpSpec which is then handed down to jasmine-node.

options.specNameMatcher

Type: string

Default: 'spec'

filename expression

options.extensions

Type: string

Default: 'js'

Used in regular expressions after dot, inside (), thus | could be used

options.captureExceptions

Type: boolean

Default: false

options.junitreport

{
  report: false,
  savePath: './reports/',
  useDotNotation: true,
  consolidate: true
}

options.teamcity

Type: boolean

Default: false

If true, will be using TeamcityReporter instead of possible isVerbose option

http://gotwarlost.github.io/istanbul/public/apidocs/classes/TeamcityReport.html

options.growl

Type: boolean

Default: false

When true will be adding GrowlReporter.

See https://github.com/mhevery/jasmine-node#growl-notifications

options.useRequireJs

Type: boolean

Default: false

options.onComplete

Type: function

Default: null

Will be called on Terminal and Teamcity reporters and on RequireJS runner.

options.includeStackTrace

Type: boolean

Default: false

Used only in TerminalReporter.

options.coffee

Type: boolean

Default: false

Seems to be currently (1.4.3) only supported in the command line options of jasmine-node.

Bugs

Help us to squash them by submitting an issue that describes how you encountered it; please be as specific as possible including operating system, node, grunt, and grunt-jasmine-node-coverage versions.

npm --versions

Release History

  • v0.4.1 (2015-02-27) Reports should be collected from where they were written #42
  • v0.4.0 (2015-02-19) Other Grunt tasks were not ran when this failed, #40
  • v0.3.2 (2015-02-04) Fixes for failure cases and documentation, #33, #36, #37 and #38
  • v0.3.1 (2014-11-21) Installation failed. Should fix #30
  • v0.3.0 (2014-11-09) Grunt usage as multi task. Fixes #12 and #18
  • v0.2.0 (2014-11-03) Better Grunt API usage. Fixes #10, #13, #14, #16, #19 and #20
  • v0.1.11 (2014-05-15) Task name fix for grunt.renametask use case
  • v0.1.10 (2014-04-07) JSHint configuration and task exit fixes
  • v0.1.9 (2014-04-02) jasmine_node.options.isVerbose was not working
  • v0.1.8 (2014-03-03) Add captureExceptions support and quit on exception
  • v0.1.7 (2013-12-13) Istanbul update, threshold configuration and JUNit output
  • v0.1.6 (2013-07-26) Change isVerbose option to verbose
  • v0.1.5 (2013-07-15) Initial coverage with Istanbul release, originally forked from grunt-jasmine-node

License

Copyright (c) 2013 "jribble" Jarrod Ribble & contributors. Based on grunt-jasmine-node.

Copyright (c) 2012 "s9tpepper" Omar Gonzalez & contributors. Licensed under the MIT license.

About

Grunt task for running jasmine-node

License:MIT License


Languages

Language:JavaScript 100.0%