Cloud Jira Test Management (TM4J) PyTest reporter plugin
Project description
Project summary
Pytest plugin which allows to upload test execution result to TM4J Cloud version. Plugin works on the top of the json-reporter
pytest plugin and tm4j_reporter_api
library.
Install and setup
How to build
python setup.py sdist
How to install
# PyPi
pip install pytest-tm4j-reporter
# Git
pip install git+ssh://git@github.com:Klika-Tech/tm4j_reporter_pytest.git
Plugin configuration
Create pytest.ini
within your project and put the variables there (see below table)
Param | Mandatory | Description | Example |
---|---|---|---|
tm4j_project_prefix | Yes | Jira / TM4J project prefix without trailing dash | QT |
tm4j_api_key | Yes | API key to access TM4j. To get it see Instruction | |
tm4j_testcycle_key | No | TM4J existing test cycle key. A new test cycle created if not specified | R40 |
tm4j_testcycle_prefix | No | Prefix for new test cycle. Default: autoreport. Full test cycle name is " ". e.g. "14-Jul-2020 16:41:24 UTC" | Login autotests |
tm4j_testcycle_description | No | Description for the new test cycle. A description for the existing test cycle won't be changed | Update v14.43.136 |
tm4j_project_webui_host | No | Jira server base host. If provided will generate a link to a newly created test cycle | klika-tech.atlassian.net |
tm4j_result_mapping | No | How to map test result - Pytest vs TM4J. tm4j-default (default) or pytest. see "Result mapping" section | tm4j-default |
Example:
[pytest]
tm4j_project_prefix = QT
tm4j_api_key = eyJ0eXAiOiJKV1QiLCJhb
tm4j_testcycle_key = R40
tm4j_testcycle_prefix = login tests
tm4j_testcycle_description = Update v14.43.136
tm4j_project_webui_host = klika-tech.atlassian.net
Usage
Writing the tests
To be able to report your test to TM4J your test names should follow convetion: test_T<TM4J test id>_the_rest_of_test_name.
So workflow will be:
- Create test case in TM4J (from UI)
- Notice it's unique id
- Create test in pytest with TM4J prefix in name.
Let's say in TM4J project with project key QT
full test key is QT-T1234
. In this case in pytest it should be created like
def test_T1234_login_as_user():
...test code goes here
Result mapping
Pytest has test result status names different from TM4J
The mapping is configured via tm4j_result_mapping parameter (optional)
Possible values: tm4j-default (default), pytest
By default, the statuses are mapped according to the following scheme:
Pytest | TM4J | Description |
---|---|---|
passed | Pass | |
failed | Fail | |
skipped | Not executed | |
xfailed | Pass | Failed, as it should |
xpassed | Fail | Should fail, but was passed |
TM4J test result statuses are configurable
For more precise mapping, pytest statuses can be added to TM4J via its UI
Pytest | TM4J |
---|---|
passed | Pass |
failed | Fail |
skipped | Skip |
xfailed | xFail |
xpassed | xPass |
tm4j_result_mapping=pytest will activate this scheme
Metadata
It is possible to add and report additional metadata using tm4j_r
fixture. Currently supported only comment
. Example:
def test_T1701_my_test(tm4j_r):
tm4j_r.comment = 'Here might be some comment for this test<br>second line here<br>third line here'
The published comment field will also contain a crash info in case if the test execution fails. Example:
crash info:
path: /opt/work/tm4j_reporter_pytest/tests/common/report_tests.py
lineno: 17
message: assert False
Please note that if you use tm4j_r fixture you won't be able to run the test without enabling plugin --tm4j
How to run
Finally we're ready to run our test(s) with reporting to TM4J. It is simple as just run pytest with --tm4j
option
--tm4j-no-publish
flag can be used if you don't want to publish your execution results to TM4J
pytest --tm4j
Result
- .report.json file created in CWD
- The file is overwritten each time
- Execution result is uploaded to TM4J
Developer notes
- Line wrapping border = 120 chars
License
This software is licensed under the MIT License
Project details
Release history Release notifications | RSS feed
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
Hashes for pytest-tm4j-reporter-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 279d2828cb8a1bfaa3c1235563eedc930a2454d160ab618f59bdd7a8263122c5 |
|
MD5 | fba0bb15b5a4be05fb65bdbcd9fbbf6a |
|
BLAKE2b-256 | 93c18bf2d62e653917950906786a993497bcc010d1784fe07ed7c33ba8a4ba55 |
Hashes for pytest_tm4j_reporter-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 065e303a39bf0f01db19c8af7e7532a7318263cb4b2e5d04aa885e3ee4815879 |
|
MD5 | 71f33f7aa8b6e9fc0f303e4d6cd673ce |
|
BLAKE2b-256 | aeefeafa06d4c8c45aecdd0c3da2aef4de495d0fdbb11bcc466efa3dbb670c66 |