pytest plugin for creating TestRail runs and adding results
Project description
This is a pytest plugin for creating/editing testplans or testruns based on pytest markers. The results of the collected tests will be updated against the testplan/testrun in TestRail.
Installation
pip install pytest-testrail-e2e
Configuration
Config for Pytest tests
Add a marker to the tests that will be picked up to be added to the run.
from pytest_testrail.plugin import testrail
@testrail('C1234', 'C5678')
def test_foo():
# test code goes here
# OR
from pytest_testrail.plugin import pytestrail
@pytestrail.case("C1234", "C5678")
def test_bar():
# test code goes here
Or if you want to add defects to testcase result:
from pytest_testrail.plugin import pytestrail
@pytestrail.defect("PF-524", "BR-543")
def test_bar():
# test code goes here
Skip a testcase [You need create ‘Skipped’ status in TestRail’]:
from pytest_testrail.plugin import pytestrail
@pytestrail.case("C1234")
@pytest.mark.skip("Mark as skipped description")
# or @pytest.mark.skip(reason="Mark as skipped description")
def test_bar():
# test code goes here
Block a testcase:
import pytest
from pytest_testrail.plugin import pytestrail
@pytestrail.case("C1234")
@pytestrail.block("Mark as blocked description")
# @pytestrail.block(reason="Mark as blocked description")
def test_bar():
# test code goes here
# OR
@pytestrail.case("C1234")
@pytest.mark.skip(reason="Mark as blocked description", block=True)
def test_bar():
# test code goes here
How to set known defect ID for specific assertion: set pytest-defect=<defect_id> in assertion error message.
from pytest_testrail.plugin import pytestrail
@pytestrail.case("C1234")
@pytestrail.defectif()
def test_bar():
# Assertion 1: defect NCT-836
assert 1==0, "pytest-defect=NCT-836"
# Assertion 2: defect NCT-1024
assert False, "Error message contains regex: pytest-defect=NCT-1024 allows to insert defect 'NCT-1024'"
Config for TestRail
Settings file template config:
[API]
url = https://yoururl.testrail.net/
email = user@email.com
password = <api_key>
[TESTRUN]
assignedto_id = 1
project_id = 2
suite_id = 3
plan_id = 4
description = 'This is an example description'
[TESTCASE]
custom_comment = 'This is a custom comment'
Or
Set command line options (see below)
Usage
Basically, the following command will create a testrun in TestRail, add all marked tests to run. Once the all tests are finished they will be updated in TestRail:
py.test --testrail --tr-config=<settings file>.cfg
All available options
option |
description |
---|---|
–testrail |
Create and update testruns with TestRail |
–tr-config |
Path to the config file containing information about the TestRail server (defaults to testrail.cfg) |
–tr-url |
TestRail address you use to access TestRail with your web browser (config file: url in API section) |
–tr-email |
Email for the account on the TestRail server (config file: email in API section) |
–tr-password |
Password for the account on the TestRail server (config file: password in API section) |
–tr-testrun-as signedto-id |
ID of the user assigned to the test run (config file:assignedto_id in TESTRUN section) |
–tr-testrun-pr oject-id |
ID of the project the test run is in (config file: project_id in TESTRUN section) |
–tr-testrun-su ite-id |
ID of the test suite containing the test cases (config file: suite_id in TESTRUN section) |
–tr-testrun-su ite-include-all |
Include all test cases in specified test suite when creating test run (config file: include_all in TESTRUN section) |
–tr-testrun-na me |
Name given to testrun, that appears in TestRail (config file: name in TESTRUN section) |
–tr-testrun-de scription |
Description given to testrun, that appears in TestRail (config file: description in TESTRUN section) |
–tr-run-id |
Identifier of testrun, that appears in TestRail. If provided, option “–tr-testrun-name” will be ignored |
–tr-plan-id |
Identifier of testplan, that appears in TestRail. If provided, option “–tr-testrun-name” will be ignored |
–tr-version |
Indicate a version in Test Case result. |
–tr-no-ssl-cer t-check |
Do not check for valid SSL certificate on TestRail host |
–tr-close-on-c omplete |
Close a test plan or test run on completion. |
–tr-dont-publi sh-blocked |
Do not publish results of “blocked” testcases in TestRail |
–tr-skip-missi ng |
Skip test cases that are not present in testrun |
–tr-milestone- id |
Identifier of milestone to be assigned to run |
–tc-custom-com ment |
Custom comment, to be appended to default comment for test case (config file: custom_comment in TESTCASE section) |
–tr-report-sin gle-test |
Report result immediately for each test case when it finished |
TestRail Settings
To increase security, the TestRail team suggests using an API key instead of a password. You can see how to generate an API key here.
If you maintain your own TestRail instance on your own server, it is recommended to enable HTTPS for your TestRail installation.
For TestRail hosted accounts maintained by Gurock, all accounts will automatically use HTTPS.
You can read the whole TestRail documentation here.
License
This project is licensed under the MIT license.
Acknowledgments
allankp, author of the pytest-testrail repository that was cloned.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytest-testrail-e2e-2.2.3.tar.gz
.
File metadata
- Download URL: pytest-testrail-e2e-2.2.3.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.20.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21b9e4f46c1104d324af3d6749e942df7183dfa8fc5d9e457003f02eda7265ca |
|
MD5 | cdfa45701566a0a845e52c621c79577f |
|
BLAKE2b-256 | b42d59b172c326ab1baf5519fc7eebf1d98f7d6245567313d867e4859446b82f |
File details
Details for the file pytest_testrail_e2e-2.2.3-py3-none-any.whl
.
File metadata
- Download URL: pytest_testrail_e2e-2.2.3-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.20.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69da4815aad563b3076673ca8ecdd947aa1c2bb129373078053f4eeb73a8d7f2 |
|
MD5 | f9294bfe50512f6c33da9b6586deb9c4 |
|
BLAKE2b-256 | c413ddd28c80fc8dc6c41fc0bfef5bfcdc0c398e1fb25aa6029a646b1c7e5959 |