This package has been deprecated

    Author message:

    Currently not maintained

    karma-jenkins-reporter

    0.0.2 • Public • Published

    karma-jenkins-reporter

    Reporter for the JUnit XML format for Jenkins.

    This is a fork of karma-junit-reporter.

    Installation

    The easiest way is to keep karma-jenkins-reporter as a devDependency in your package.json.

    {
      "devDependencies": {
        "karma": "~0.12",
        "karma-jenkins-reporter": "~0.1"
      }
    }

    You can simple do it by:

    npm install karma-jenkins-reporter --save-dev

    Configuration

    // karma.conf.js
    module.exports = function(config) {
      config.set({
        reporters: ['progress', 'jenkins'],
     
        // example configuration
        jenkinsReporter: {
          outputFile: 'test-results.xml',
          suite: 'foobar',                 // this will be mapped to the package
          classnameSuffix: 'browser-test'
        }
      });
    };

    You can pass list of reporters as a CLI argument too:

    karma start --reporters jenkins,dots

    Divergence from original project

    options

    options.classnameSuffix will be appended the classname property

    The output xml file will can also be set via an environment variable: REPORT_FILE its directory name is also used as the classname property in the xml file, replaced / by a dot. You can also set a base path for the files via PREFIX.

    Furthermore there is is passed through the MAKE_TARGET environment varibale as a make_target property into each testsuite.

    result

    • classname property of a testcase have no pacakge and browser information anymore, instead the contain the directory of REPORT_FILE, dot seperated
    • package and browser information in a testcase is written into the package property
    • make_target of a testsuite is passed by env variable MAKE_TARGET
    • if you use nested testsuites (for instance nested describe functions in mocha), the hierarchy is mapped to a flat array, joind with | into the parentSuites property of each testcase

    example xml

    if you have this mocha testsuite

      describe('1', function() {
        describe('1.1', function() {
          it('1.1.1', function() {});
          it('1.1.2', function() {});
        });
        describe('1.2', function() {
          it('1.2.1', function() {});
        });
        describe('1.3', function() {
          it('1.3.1', function() {});
        });
      });

    the result will look like this xml

    <?xml version="1.0"?>
    <testsuites>
      <testsuite name="Chrome 41.0.2272 (Mac OS X 10.10.2)" package="foobar" timestamp="2015-03-24T14:04:24" id="0" hostname="antonsmac.local"  make_target="undefined" tests="12" errors="0" failures="0" time="0.183">
        <properties>
          <property name="browser.fullName" value="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36"/>
        </properties>
        <testcase name="1.1.1" time="0" classname="lib.new-schedulemanager.tree-row.browser-test" package="foobar Chrome 41.0.2272 (Mac OS X 10.10.2)" parentSuites="1|1.1"/>
        <testcase name="1.1.2" time="0" classname="lib.new-schedulemanager.tree-row.browser-test" package="foobar Chrome 41.0.2272 (Mac OS X 10.10.2)" parentSuites="1|1.1"/>
        <testcase name="1.2.1" time="0" classname="lib.new-schedulemanager.tree-row.browser-test" package="foobar Chrome 41.0.2272 (Mac OS X 10.10.2)" parentSuites="1|1.2"/>
        <testcase name="1.3.1" time="0" classname="lib.new-schedulemanager.tree-row.browser-test" package="foobar Chrome 41.0.2272 (Mac OS X 10.10.2)" parentSuites="1|1.3"/>
        <system-out><![CDATA[
    ]]></system-out>
        <system-err/>
      </testsuite>
    </testsuites>
     

    For more information on Karma see the homepage.

    Install

    npm i karma-jenkins-reporter

    DownloadsWeekly Downloads

    887

    Version

    0.0.2

    License

    MIT

    Last publish

    Collaborators

    • marcmenn
    • timaschew