This integration is used to add test results to TestRail automatically when Behave tests are executed.
Example of the generated report:
3 testrail test cases passed, 0 failed, 19 skipped, 2 untested
Took 0m6.349s
Can install it using pipenv
$ pipenv install behave-testrail-reporter
or using pip
$ pip install behave-testrail-reporter
Add TestrailReporter
to behave reporters in your /features/environment.py
by adding this code in before_all()
from behave_testrail_reporter import TestrailReporter
def before_all(context):
# ... all your other awesome code in here
current_branch = os.environ.get('CIRCLE_BRANCH') # Change this to get the current build branch of your CI system
testrail_reporter = TestrailReporter(current_branch)
context.config.reporters.append(testrail_reporter)
Create a testrail.yml
config file in the root of your project
Example structure:
base_url: https://your-domain.testrail.io
projects:
- name: 'Advanced tests on branch {branch}'
id: 123
suite_id: 456
# note: this will allow any branch to push test case results to Testrail.
allowed_branch_pattern: '.*'
- name: 'Smoke tests on branch {branch}'
id: 1234
suite_id: 789
# note: this will allow any branch to push test case results to Testrail.
allowed_branch_pattern: '.*'
Allow only master branch and release1.111.1 to push test results to Testrail:
base_url: https://your-domain.testrail.io
projects:
- name: 'Full E2E tests on branch {branch}'
id: 123
suite_id: 456
allowed_branch_pattern: '^(master|release\/\d+([\.\d]+)?)$'
yaml key | Description |
---|---|
name | Project name |
id | Testrail project id |
suite_id | Testrail Suite id |
allowed_branch_pattern | Regular expression to restrict when a test run is executed |
name - You can use some project variables to create dynamic test run names
Variable | Example | Result |
---|---|---|
{project_id} | 'Test run {project_id}' | Test run 123 |
{suite_id} | 'Test run {suite_id}' | Test run 456 |
{branch} | 'Test run {branch}' | Test run master |
Environment variables required
Variable name | Description |
---|---|
TESTRAIL_KEY | TestRail user password |
TESTRAIL_USER | TestRail user email address |
To get test cases marked as success or fail on TestRail we have to add tags with TestRail test case ID on each scenario.
Test case tag structure:
prefix
+ test case id
@testrail-
+ C1104
See example below:
Feature: Log in and out
Background:
Given I am logged out from Hub
And I navigate to the home page
@testrail-C1104
@testrail-C45933
Scenario: Admin can login
When I enter the username admin
And I enter the password admin
And I click the Login button
Then I see the admin's landing page
Note: some scenarios can cover multiple TestRail cases, for that you just need to add multiple tags.
pipenv install --dev
Activate your virtual environment and then just run tox.
tox
If you need to publish a new version of this package you can use this command:
python setup.py sdist bdist_wheel
twine upload dist/*
Licensed under MIT license
. View license.