All Projects → webdriverio-boneyard → wdio-junit-reporter

webdriverio-boneyard / wdio-junit-reporter

Licence: MIT license
A WebdriverIO v4 plugin. Report results in junit xml format.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to wdio-junit-reporter

Rspec junit formatter
RSpec results that your CI can read
Stars: ✭ 255 (+1861.54%)
Mutual labels:  jenkins, junit
soccer-stats
Soccer Stats is an example application to be used as a proof of concept for a presentation at Ansible Meetup in São Paulo
Stars: ✭ 83 (+538.46%)
Mutual labels:  jenkins
jenkinsapi
A Python API for accessing resources and configuring Hudson & Jenkins continuous-integration servers
Stars: ✭ 790 (+5976.92%)
Mutual labels:  jenkins
bitbucket-push-and-pull-request-plugin
Plugin for Jenkins v2.138.2 or later, that triggers job builds on Bitbucket's push and pull request events.
Stars: ✭ 47 (+261.54%)
Mutual labels:  jenkins
gogs-webhook-plugin
Jenkins Gogs Webhook
Stars: ✭ 76 (+484.62%)
Mutual labels:  jenkins
jbehave-junit-runner
Integrate JBehave better with JUnit. Reports all Stories, Scenarios and Steps as JUnit Suites and Test Cases.
Stars: ✭ 70 (+438.46%)
Mutual labels:  junit
jenkins-pipeline-shared-library-template
Project template for developing shared Jenkins pipeline libraries.
Stars: ✭ 46 (+253.85%)
Mutual labels:  jenkins
devops
let devops for docker, dockerswarm ,k8s easy
Stars: ✭ 282 (+2069.23%)
Mutual labels:  jenkins
Hello Jenkins
A Jenkins Demo with a Hello World C++ program.
Stars: ✭ 21 (+61.54%)
Mutual labels:  jenkins
ods-jenkins-shared-library
Shared Jenkins library which all ODS projects & components use - provisioning, SonarQube code scanning, Nexus publishing, OpenShift template based deployments and repository orchestration
Stars: ✭ 51 (+292.31%)
Mutual labels:  jenkins
ForgeModdingSkeleton
Skeletons for building Forge mods
Stars: ✭ 21 (+61.54%)
Mutual labels:  junit
junit-report-rs
JUnit compatible XML reports in Rust
Stars: ✭ 15 (+15.38%)
Mutual labels:  junit
springboot-deploy-demo
spring boot deploy
Stars: ✭ 16 (+23.08%)
Mutual labels:  jenkins
webdriverio-zap-proxy
Demo - how to easily build security testing for Web App, using Zap and Glue
Stars: ✭ 58 (+346.15%)
Mutual labels:  webdriverio
job-dsl-sample
Jenkins Job DSL Sample Project
Stars: ✭ 32 (+146.15%)
Mutual labels:  jenkins
junit-insights
Extension for JUnit which provides insights for the runtime of contexts, classes and methods
Stars: ✭ 112 (+761.54%)
Mutual labels:  junit
saint-build
monitor your jenkins operations, jobs in async and functional elegance
Stars: ✭ 13 (+0%)
Mutual labels:  jenkins
jenkins-on-windowsservercore
This repository contains Dockerfiles of Jenkins for Docker's for Windows
Stars: ✭ 39 (+200%)
Mutual labels:  jenkins
jenkins-webapi
Python library for interacting with jenkins ci
Stars: ✭ 16 (+23.08%)
Mutual labels:  jenkins
.github
Global configurations for the jenkinsci GitHub organization
Stars: ✭ 13 (+0%)
Mutual labels:  jenkins

WDIO JUnit Reporter

Build Status Code Climate Test Coverage dependencies Status


A WebdriverIO plugin. Report results in junit xml format.

WDIO JUnit Reporter

Installation

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

{
  "devDependencies": {
    "wdio-junit-reporter": "~0.3.0"
  }
}

You can simple do it by:

npm install wdio-junit-reporter --save-dev

Instructions on how to install WebdriverIO can be found here.

Configuration

Following code shows the default wdio test runner configuration. Just add 'junit' as reporter to the array. To get some output during the test you can run the WDIO Dot Reporter and the WDIO JUnit Reporter at the same time:

// wdio.conf.js
module.exports = {
    // ...
    reporters: ['dot', 'junit'],
    reporterOptions: {
        junit: {
            outputDir: './',
            outputFileFormat: function(opts) { // optional
                return `results-${opts.cid}.${opts.capabilities}.xml`
            }
        }
    },
    // ...
};

The following options are supported:

outputDir

Define a directory where your xml files should get stored.

Type: String
Required

outputFileFormat

Define the xml files created after the test execution. You can choose to have one file (single) containing all the test suites, many files (multi) or both. Default is multi.

  • multi: set a function to format of your xml files using an opts parameter that contains the runner id as well as the capabilities of the runner.
  • single: set a function to format you xml file using a config parameter that represents the reporter configuration

Type: Object
Default: {multi: function(opts){return `WDIO.xunit.${opts.capabilities}.${opts.cid}.xml`}}

outputFileFormat: {
    single: function (config) {
        return 'mycustomfilename.xml';
    },
    multi: function (opts) {
        return `WDIO.xunit.${opts.capabilities}.${opts.cid}.xml`
    }
}

suiteNameFormat

Gives the ability to provide custom regex for formatting test suite name (e.g. in output xml ).

Type: Regex,
Default: /[^a-z0-9]+/

packageName

You can break out packages by an additional level by setting 'packageName'. For example, if you wanted to iterate over a test suite with different environment variable set:

Type: String
Example:

// wdio.conf.js
module.exports = {
    // ...
    reporters: ['dot', 'junit'],
    reporterOptions: {
        junit: {
            outputDir: './',
            packageName: process.env.USER_ROLE // chrome.41 - administrator
        }
    }
    // ...
};

errorOptions

Allows to set various combinations of error notifications inside xml.
Given a Jasmine test like expect(true).toBe(false, 'my custom message') you will get this test error:

{ 
    matcherName: 'toBe',
    message: 'Expected true to be false, \'my custom message\'.',
    stack: 'Error: Expected true to be false, \'my custom message\'.\n    at UserContext.it (/home/mcelotti/Workspace/WebstormProjects/forcebeatwio/test/marco/prova1.spec.js:3:22)',
    passed: false,
    expected: [ false, 'my custom message' ],
    actual: true 
}

Therefore you can choose which key will be used where, see the example below.

Type: Object,
Default: errorOptions: { error: "message" }
Example:

// wdio.conf.js
module.exports = {
    // ...
    reporters: ['dot', 'junit'],
    reporterOptions: {
        junit: {
            outputDir: './',
            errorOptions: {
                error: 'message',
                failure: 'message',
                stacktrace: 'stack'
            }
        }
    }
    // ...
};

Jenkins Setup

Last but not least you nead to tell your CI job (e.g. Jenkins) where it can find the xml file. To do that add a post-build action to your job that gets executed after the test has run and point Jenkins (or your desired CI system) to your XML test results:

Point Jenkins to XML files

If there is no such post-build step in your CI system there is probably a plugin for that somewhere on the internet.

Development

All commands can be found in the package.json. The most important are:

Watch changes:

$ npm run watch

Run tests:

$ npm test

# run test with coverage report:
$ npm run test:cover

Build package:

$ npm build

For more information on WebdriverIO see the homepage.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].