This package allows you to use Protractor in conjunction with TestRail.
- It can automatically create a new test run on TestRail.
- It can automatically send test results to TestRail - after they've been run.
npm i jasmine-2-testrail
The Reporter must be imported and declared outside of the config
and included in the onPrepare section.
The createRun() method is called for creating run in the afterLaunch section of the config file,
with the first parameter being your corresponding TestRail project ID
and the second parameter being the suite ID in which you want to put the newly created run.
(The third parameter is undefined by default, check Additional parameters below)
const Reporter = require('jasmine-2-testrail')
const reporter = new Reporter({
});
exports.config = {
onPrepare: () => {
jasmine.getEnv().addReporter(reporter);
},
afterLaunch: () => {
// The first parameter is the project ID, and the second is the suite ID
reporter.createRun(1, 1, browser.params.runName)
// afterLaunch needs to return a promise in order
// to execute asynchronous code (used the most basic promise)
return new Promise(() => true)
},
}
You can also add a parameter if you don't want to send results to TestRail every time.
In the config file, add:
params: {
sendResultsToTestRail: true,
},
You also need to add everything in the afterLaunch section in an if statement, like this:
afterLaunch: () => {
if (browser.params.sendResultsToTestRail) {
reporter.createRun(1, 1, browser.params.runName)
return new Promise(() => true)
}
}
This enables sending results by default, and if you want, you can disable it by running Protractor like this:
protractor conf --params.sendResultsToTestRail=false
You can also invert the values, if you don't want to send results by default (sendResultsToTestRail: false).
There is also a parameter you can add for naming a run in TestRail.
params: {
runName: false,
},
protractor conf --params.runName=TestRun1
(If you don't specify a run name, it defaults to the current date and time)
The Case ID from TestRail must be added to the start of each it() description,
and separated from the test name by a colon - ":".
describe('Login Page', () => {
// "1:" this is Case ID from Test Rail
it('1: Login success', async () => {
expect(1).toBe(1)
})
it('2: Login fail', async () => {
expect(1).toBe(0)
})
xit('3: Registration', async () => {
expect(1).toBe(1)
})
})
Note: The Case ID is a unique and permanent ID of every test case (e.g. C125),
and shoudn't be confused with a Test Case ID, which is assigned to a test case
when a new run is created (e.g. T325).
This file needs to be created in the same directory as the conf file.
It must contain the URL of your TestRail, username (email address) and password (or API key).
This file needs to have all 3 parameters correctly filled.
NETWORK_URL = https://<YourProjectURL>.testrail.io
USERNAME = email address
PASSWORD = password or API key
In order to use TestRail API, it needs to be enabled by an administrator
in your own TestRail Site Settings.
Also if you want to use API authentication instead of your password,
enable session authentication for API in the TestRail Site Settings,
and add an API key in your User settings (This is recommended).
Slobodan Dušanić |
Željko Simić |
---|
This project is licensed under the MIT License - see the LICENSE file for details.