JSPM

karma-jasmine-spec-tags

2.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3898
  • Score
    100M100P100Q128988F
  • License MIT

A plugin for karma-jasmine. Allows to filter tests (specs) by tags.

Package Exports

  • karma-jasmine-spec-tags
  • karma-jasmine-spec-tags/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (karma-jasmine-spec-tags) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

karma-jasmine-spec-tags

npm version Node CI

A plugin for karma-jasmine which helps to filter tests (specs) by tags.

Usage example:

$ karma start --tags smoke
$ karma start --skip-tags slow,bench
$ karma start --tags bench --skip-tags slow
$ karma start --tag-prefix 'scope:' --tags critical

Where tags are defined in spec names:

describe('Example test', () => {
    it('should be a #smoke test', () => {
        // ...
    });
    
    it('#slow test', () => {
        // ...
    });
})
    
describe('Performance test suite #bench', () => {
    it('#fast #smoke test', () => {
        // ...
    });
    
    it('#slow test', () => {
        // ...
    });
})

describe('Custom tag prefix', () => {
    it('test scope:critical', () => {
        // ...
    });
})

Installation

Install the package using npm:

$ npm install karma-jasmine-spec-tags --save-dev

Note: karma-jasmine adapter is required to be installed.

Add jasmine-spec-tags to the frameworks array in Karma configuration after jasmine:

module.exports = function(config) {
    config.set({
        frameworks: ['jasmine', 'jasmine-spec-tags']
    });
}

Command line options

Following options can be passed to karma:

  • --tag-prefix <prefix> - defines a prefix for a tag name. # is used by default.

  • --tags [names] - defines a comma-separated list of tag names.

    • If names is defined then specs which match to tags will be executed.
    • If names is not defined then all specs with a tag will be executed.
  • --skip-tags [names] - defines a comma-separated list of tag names.

    • If names is defined then specs which match to tags will be skipped.
    • If names is not defined then all specs with a tag will be skipped.

Configuration

Default values can be configured using client map in Karma configuration:

module.exports = function(config) {
    config.set({
        frameworks: ['jasmine', 'jasmine-spec-tags'],
        
        client: {
            tagPrefix: '@',
            tags: 'smoke',
            skipTags: 'slow'
        }
    });
}

Where tagPrefix, tags and skipTags fields mean the same as the command line options.

Values of tags and skipTags fields can be either a comma-separated list of tag names or an array of strings. Boolean true can be passed to them to include/exclude all tagged specs.

License

MIT