npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jasmine-2-testrail

v1.2.3

Published

Jasmine based reporter for creating new run and sending results to TestRail

Downloads

40

Readme

TestRail v4.1

Jasmine2TestRail

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.

Install

npm i jasmine-2-testrail

Example - Protractor conf.js

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)
  },
}

Additional parameters

sendResultsToTestRail

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).

runName

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)

Example - tests

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).

Example - .env file

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

Enable TestRail API

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).

Authors

| Slobodan Dušanić| Željko Simić | |---|---|

Special thanks

Marko Rajević

License

This project is licensed under the MIT License - see the LICENSE file for details.