Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
@ssense/cucumber-testrail-sync
Advanced tools
This module has two main features:
It can synchronize test cases from TestRail to
.feature
files on your local filesystem.
It can automatically push test results to TestRail.
npm i @ssense/cucumber-testrail-sync
We propose the following collaborative workflow for BDD testing:
An application should only have one TestPlan, with each features having their own Test Run.
At the root of your project, create the .testrail-sync.js
file.
module.exports = {
testrail: {
host: '', // testrail host
user: '', // testrail username
password: '', // testrail password or api key
filters: {
plan_id: '', // required testrail plan id
run_id: '', // optional testrail run id
}
},
};
There are other possible options:
overwrite: {
local: 'ask',
remote: false,
}
stepDefinitionsTemplate: The template to use to generate blank step definition files (ie. stepDefinitionsTemplate: 'es5.js'
)
indent: The indentation to use when generating .feature
or .js
files (ie. indent: ' '
)
featuresDir: The directory where .feature
files should be created (ie. featuresDir: 'features'
)
stepDefinitionsDir: The directory where blank step definition files should be created (ie. stepDefinitionsDir: 'features/step_definitions'
)
stepDefinitionsStringPatterns: If set to true
, use Strings patterns to write step definitions.
directoryStructure: Used to match the TestRail sections tree with the local tests directory structure.
type: The variable name to used to create the folders. Can be either section:slug
or section:name
skipRootFolder: The number of root sections to skip.
Then you can run the ./node_modules/.bin/cucumber-testrail-sync
command to fetch the test cases from TestRail.
You can use the --verify
switch to verify that your project's features files match the test cases from TestRail.
Tests running (left) and results being pushed to Test Rail (right)
We suggest enabling this option at the CI level (without the run_id
config, so that the results from all the runs in the TestPlan will be updated).
To push the results, you will have to do the following two things:
features/support/hooks.js
) :var testrailSync = require('@ssense/cucumber-testrail-sync');
module.exports = function () {
testrailSync.install(this);
};
Or for TypeScript :
import * as testrailSync from '@ssense/cucumber-testrail-sync';
module.exports = function (): void {
testrailSync.install(this);
};
PUSH_RESULTS_TO_TESTRAIL
environment variableHere at SSENSE, we wanted to push the results only when the tests were being run against the develop
branch.
To do so, we set up the .travis.yml
to run a shell script: script: ./scripts/run-ci-tests.sh
#!/bin/bash
set -ev
GITHUB_LINK="https://github.com/${TRAVIS_REPO_SLUG}/commit/${TRAVIS_COMMIT}"
COMMIT_MSG=`git log -n 1 --pretty="format:%an committed %s" $TRAVIS_COMMIT`
COMMIT_LOG="<a href='${GITHUB_LINK}'>${COMMIT_MSG}</a>"
if [[ ${TRAVIS_BRANCH} == "develop" ]] && [[ ${TRAVIS_PULL_REQUEST} == "false" ]]; then
docker run my_app /bin/sh -c "export PUSH_RESULTS_TO_TESTRAIL=1; export TESTRAIL_RESULTS_COMMENT=$COMMIT_LOG; cd /app; npm test"
else
docker run my_app /bin/sh -c "cd /app; npm test"
fi
Allow comments in the gherkin
Update README: Add Travis CI example
Support Scenario Outlines (issue #6)
Support Cucumber String Patterns (stepDefinitionsStringPatterns
option) (issue #8)
Fix tables import containing three pipes or more (issue #5)
Fix TestRail vs Local .feature diff output not showing
Colored TestRail vs Local .feature diff output
Ability to specify a custom run_id (if not, every run in the Test Plan will be used)
Update the original TestRun results rather than creating a new one every time
Various improvements
Bugfix: sync script was creating duplicate step definitions
Add unique filename check
Implemented --verify
switch (issue #3)
Add some regression tests
step_definitions
folder if it doesn't existWhen creating the blank step definitions files, avoid creating duplicate step definitions if they are implemented in other files
Add patterns/params detection when creating the step definitions files
FAQs
Synchronize test cases from TestRail & pushes Cucumber results
The npm package @ssense/cucumber-testrail-sync receives a total of 16 weekly downloads. As such, @ssense/cucumber-testrail-sync popularity was classified as not popular.
We found that @ssense/cucumber-testrail-sync demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 14 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.