Skip to main content

Export your test suites and cases to JUnit report using decorators

Project description

Junit-Report

This Python package adds more control to your tests by decorating your functions and pytest fixtures and exporting them as JUnit xml.

Table of contents

Installation

pip install junit-report

Usage

import pytest

from junit_report import JunitTestSuite, JunitTestCase, JunitFixtureTestCase

class TestSomeThing:

    @pytest.fixture
    @JunitFixtureTestCase()
    def my_fixture(self):
        # do stuff ..
        
        @JunitTestCase()
        def nested_case():
          pass
        
        yield nested_case
        
    @JunitTestCase()
    def my_first_test_case(self):
        pass
    
    @JunitTestCase()
    def my_second_test_case(self, name: str):
        raise ValueError(f"Invalid name {name}")
    
    @JunitTestSuite()
    def test_suite(self, my_fixture):
        my_fixture()
        self.my_first_test_case()
        self.my_second_test_case("John")

Output

<?xml version="1.0" ?>
<testsuites disabled="0" errors="0" failures="1" tests="4" time="0.000301361083984375">
	<testsuite disabled="0" errors="0" failures="1" name="TestSomeThing_test_suite" skipped="0" tests="4" time="0.000301361083984375">
		<testcase name="my_fixture" time="0.000163" classname="TestSomeThing" class="fixture"/>
		<testcase name="nested_case" time="0.000034" classname="module_name.test" class="function"/>
		<testcase name="my_first_test_case" time="0.000017" classname="TestSomeThing" class="function"/>
		<testcase name="my_second_test_case" time="0.000087" classname="TestSomeThing" class="function">
			<failure type="ValueError" message="Invalid name John">Traceback (most recent call last): ... ValueError: Invalid name John</failure>
		</testcase>
	</testsuite>
</testsuites>

OS parameters used for configuration

Variable Description
JUNIT_REPORT_DIR Reports directory where the reports will be extracted. If it does not exist - create it.

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

junit-report-0.2.7.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

junit_report-0.2.7-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file junit-report-0.2.7.tar.gz.

File metadata

  • Download URL: junit-report-0.2.7.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for junit-report-0.2.7.tar.gz
Algorithm Hash digest
SHA256 8db5f28ea02d70767192e313c501cee7335cea2007386bc9a7f6df77e769f4da
MD5 df60f264f9ebef80b74a5a2ca8e3c713
BLAKE2b-256 9d35270ff1cb960d079be49c2c82c3d2df2a48b47a917eb3f561688bb7782192

See more details on using hashes here.

File details

Details for the file junit_report-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: junit_report-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for junit_report-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 35da4506f3ac7f2b8a12341084e69717b2e673b440a3b4e1e5d6828b6a6e64db
MD5 fed5523e200f3a0d811ecf458836df2f
BLAKE2b-256 3f22cdeccba49ac745ca4a276e38a2314f599fba31348429856a6f1ed5211197

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page