/jasmine-testrail-reporter

Reports Jasmine test results to TestRail

Primary LanguageTypeScriptMIT LicenseMIT

jasmine-testrail-reporter

Reports Jasmine test results to TestRail

How to use

npm install jasmine-testrail-reporter --save-dev
or
yarn add jasmine-testrail-reporter --dev

Then the best way to pass parameters to the reporter is by environment variables:

TESTRAIL_USERNAME - used to form URL, like <username>.testrail.io
TESTRAIL_EMAIL
TESTRAIL_PASSWORD - API key
TESTRAIL_PROJECT_ID - number | 'first' | 'last', default = 'first' (the results will be saved to your first project in the TestRail project list)
TESTRAIL_SUITE_ID - optional
TESTRAIL_RUN_ID - number | 'first' | 'last', default = 'last' (the results will be saved to your last test run in the TestRail list)

For example, you can use env utility, like this:

env TESTRAIL_USERNAME=<...> TESTRAIL_EMAIL=<...> TESTRAIL_PASSWORD=<...> TESTRAIL_PROJECT_ID=first npm test  

protractor.conf.ts

import TestRailReporter from 'jasmine-testrail-reporter';
const trReporter = new TestRailReporter();  // all parameters are inside environment variables
// or
const trReporter = new TestRailReporter({   // all parameters are setup in the code
                    username: 'username',   // security warning: attention when commit to repository !
                    email: 'email',         // security warning: attention when commit to repository !
                    password: 'password',   // security warning: attention when commit to repository !
                    projectId: 1,
                    suiteId: 1,
                    runId: 30,
});

export const config = {

    onPrepare: () => {
        jasmine.getEnv().addReporter(trReporter);
    },
    onComplete: function() {
            return myReporter.publishResults()
                .then(results => { console.log('complete'); })
                .catch(err => { console.log(err.message); });
    },

}  

Thanks

TODO

  • [ ] fix TS installation errors
  • [ ] demonstrate error (if any) in async constructor more earlier;
  • [ ] add status matching in parameters;
  • [ ] store CustomReporterResult.failedExpectations, passedExpectations, pendingReason in the IAddResultsForCases.custom_step_results;
  • [ ] implement ‘create’ option for RunId;
  • [ ] implement createTestCases method;
  • [ ] ...