Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pytest-tm4j-reporter

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pytest-tm4j-reporter

Cloud Jira Test Management (TM4J) PyTest reporter plugin

  • 0.1.2
  • PyPI
  • Socket score

Maintainers
1

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)

ParamMandatoryDescriptionExample
tm4j_project_prefixYesJira / TM4J project prefix without trailing dashQT
tm4j_api_keyYesAPI key to access TM4j. To get it see Instruction
tm4j_testcycle_keyNoTM4J existing test cycle key. A new test cycle created if not specifiedR40
tm4j_testcycle_prefixNoPrefix for new test cycle. Default: autoreport. Full test cycle name is " ". e.g. "14-Jul-2020 16:41:24 UTC"Login autotests
tm4j_testcycle_descriptionNoDescription for the new test cycle. A description for the existing test cycle won't be changedUpdate v14.43.136
tm4j_project_webui_hostNoJira server base host. If provided will generate a link to a newly created test cycleklika-tech.atlassian.net
tm4j_result_mappingNoHow to map test result - Pytest vs TM4J. tm4j-default (default) or pytest. see "Result mapping" sectiontm4j-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:

PytestTM4JDescription
passedPass
failedFail
skippedNot executed
xfailedPassFailed, as it should
xpassedFailShould fail, but was passed

TM4J test result statuses are configurable
For more precise mapping, pytest statuses can be added to TM4J via its UI

PytestTM4J
passedPass
failedFail
skippedSkip
xfailedxFail
xpassedxPass

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

Keywords

FAQs


Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc