Wdio Service to inject result of automatic test run in Azure DevOps TestPlan
npm install @criszalo1997/wdio-azure-devops-service

Publishes WebdriverIO results on Azure DevOps Test Plans.
Core features:
* Support for Jasmine/Jest/Mocha and Cucumber runtime frameworks
* Test results are aggregated under the same test run if you are executing more spec(test) files and they are belongs to the same suite
* Results are reported immediately after single test execution (real-time reporting)
* Test run is closed after last spec(test) file has been finished
* Multi suite support
Install this module locally with the following command to be used as a (dev-)dependency:
``shell`
npm install --save @gmangiapelo/wdio-azure-devops-service
npm install --save-dev @gmangiapelo/wdio-azure-devops-service
Instructions on how to install WebdriverIO can be found here.
> _wdio-azure-devops-service_ supports NodeJS 8 or higher
> _wdio-azure-devops-service_ supports commonjs and esm
Since @gmangiapelo/wdio-azure-devops-service is a service, you can set it up in your wdio.conf.js file as follows
`js`
import AzureDevopsService from "@gmangiapelo/wdio-azure-devops-service";
// wdio.conf.js
exports.config = {
// ...
// =====
// Setup
// =====
services:
[
AzureDevopsService,
{
pat: 'u46xjx2ol4px36zg3z565uz52dbvshctlulkhrsecxiamn6nhtwa',
organizationUrl: 'https://dev.azure.com/gianlucamangiapelo',
projectId: '8b3c68ac-f69d-41c6-bbad-921d8bae9819',
planId: 263072,
suiteId: 263073,
caseIdRegex: '@?[ref',
runName: 'FE regression tests for TestPlan',
screenshotSuccess: false,
screenshotFailed: true,
},
],
],
// ...
};
Your WDIO tests should include the ID of your Azure test case. Make sure your test case IDs are distinct from your test titles:
Mocha style:
`Javascript
// Good:
it("C123 Can authenticate a valid user", ...
// Bad:
it("C123Can authenticate a valid user", ...
it("Can authenticate a valid user C123", ...
`
Cucumber style:
`GherkinGood:
@C123
Scenario Can authenticate a valid user
@c123
Scenario Can authenticate a valid user,
$3
This is an example of the results pushed on AZ Test Plans, during a test run
!AzureDevops Test Plans example
Service Options
$3
The Personal Access token generated in Azure DevOps with API permission set.
Example:
"u46xjx2ol4px36zg3z565uz52dbvshctlulkhrsecxiamn6nhtwa"Type:
stringRequired:
true$3
The base url of your Azure DevOps instance.
Example:
"https://dev.azure.com/gianlucamangiapelo"Type:
stringRequired:
true$3
The id of the project in Azure DevOps.
To find the projectId use
GET {organizationUrl}/_apis/projects?api-version=6.0 and copy the appropriate id.Example:
"3cf7dbc9-cb1e-4240-93f2-9a5960ab3945"Type:
stringRequired:
true$3
The test plainId that you can retrieve in Azure DevOps Test Plan section.
Example:
124Type:
integerRequired:
true$3
The suiteId that you can retrieve in Azure DevOps Test Plan section, in case of nested suites, get the root suiteId, the service iterates over all the child suites.
Example:
21Type:
integerRequired:
true$3
A descriptive name for the test run.
Example:
"FE regression tests run"Type:
stringRequired:
true$3
Custom regular expression to match the testCaseId from tag or title test case.
Type:
stringDefault:
"@?cC"Required:
false$3
In true, the test cases that pass will send a screenshot in png format of the execution result as an attachment in the runner in azure devops.
Type:
booleanDefault:
falseRequired:
false
$3
In true, test cases that fail will send a screenshot in png format of the execution result as an attachment in the runner in azure devops
Type:
booleanDefault:
falseRequired:
false`