Skip to main content
PyPI version Travis CI Code coverage Python updates TP for kiwitcms/junit.xml-plugin (master) Tidelift Become a sponsor Kiwi TCMS on Twitter

This package allows you to read junit.xml files and send the results to Kiwi TCMS.

Installation

pip install kiwitcms-junit.xml-plugin

Configuration and environment

Minimal config file ~/.tcms.conf:

[tcms]
url = https://tcms.server/xml-rpc/
username = your-username
password = your-password

For more info see tcms-api docs.

This plugin is only concerned with parsing the junit.xml format and executing tcms-api functions which will create/reuse test cases, test plans and test runs. tcms-api behavior is controlled via environment variables.

For example this is how our own environment looks like:

#!/bin/bash

if [ "$TRAVIS_EVENT_TYPE" == "push" ]; then
    # same as $TRAVIS_TAG when building tags
    export TCMS_PRODUCT_VERSION=$TRAVIS_BRANCH
fi

if [ "$TRAVIS_EVENT_TYPE" == "pull_request" ]; then
    export TCMS_PRODUCT_VERSION="PR-$TRAVIS_PULL_REQUEST"
fi

export TCMS_BUILD="$TRAVIS_BUILD_NUMBER-$(echo $TRAVIS_COMMIT | cut -c1-7)"

Further documentation and behavior specification can be found here.

The above configuration creates a separate TestPlan for each branch, see TP-7: [junit.xml] Plan for kiwitcms/junit.xml-plugin (master), a separate TestPlan for each pull request (recording possible multiple test runs) and separate TestPlan and TestRun for each tag on GitHub! tcms-api has default behavior for Travis CI and Jenkins and allows endless configuration via environment variables.

Usage

# define environment variables
tcms-junit.xml-plugin /path/to/junit.xml

Changelog

v15.0 (23 Sep 2025)

  • Update junitparser from 3.1.0 to 3.2.0

  • Drop official support for Python 3.8

v12.8.1 (22 Dec 2023)

  • Update tcms-api from 12.7 to 12.8.1

  • Relax the requirement on tcms-api to allow for easier upgrades

v12.7 (10 Dec 2023)

  • Update junitparser from 2.8.0 to 3.1.0

  • Update tcms-api from 12.2 to 12.7

  • Calculate stop_date only when start_date is valid (Michael Kaye)

v12.2.999 (18 Apr 2023)

  • Read start_date from <testsuite timestamp> if it exists. Fixes Issue #89

  • Internal refactoring. WARNING: contains backwards incompatible changes for testcase_summary() and testexecution_timestamps() methods which will break inherited classes

v12.2 (04 Apr 2023)

  • Report TestExecution timestamps if present in XML

v12.1 (21 Mar 2023)

  • Decode byte strings before sending comments to RPC (Sergey Lazarev)

  • Format comments as Markdown when rendering the raw XML values

  • Append stdout/stderr information to failure/error comments

  • Updates around CI and expanded test matrix

v12.0 (16 Mar 2023)

  • Provide a --summary-template for optional customization of the summary generated from the test cases (Michael Kaye)

  • Update junitparser from 2.5.0 to 2.8.0

  • Update tcms-api from 11.3 to 11.4

  • Refactoring and code formatting

  • Add CodeQL workflow for GitHub code scanning

v11.3 (18 May 2022)

  • Update tcms-api from 11.2 to 11.3

  • Print information about created records if -v or --verbose is specified on the command line

  • Allow multiple XML files to be specified on the command line

v11.2 (16 May 2022)

  • Update junitparser from 2.2.0 to 2.5.0

  • Update tcms-api from 11.0 to 11.2

  • Annotate plugin with name & version information

  • Trim TestCase.summary to 255 characters. Fixes Issue #44

  • Updates around testing of this package

v11.0 (05 Dec 2021)

  • Future compatible with upcoming Kiwi TCMS v11.0

  • Update tcms-api to 11.0

  • Update junitparser from 2.0.0 to 2.2.0

  • Fix pylint issues

v10.0 (02 Mar 2021)

  • Compatible with Kiwi TCMS v10.0

  • Update tcms-api to 10.0

v9.0 (13 Jan 2021)

  • Compatible with Kiwi TCMS v9.0

  • Update tcms-api to 9.0

  • Update junitparser to 2.0.0

  • Adjusted code to handle jUnit v2.0 files

v8.4 (28 Oct 2020)

  • Update tcms-api to 8.6.0

  • Update junitparser to 1.6.0

v8.3 (10 Apr 2020)

  • Update to tcms-api v8.3.0 which uses gssapi for Kerberos

  • Requires MIT Kerberos for Windows if installed on Windows

v8.2 (03 Apr 2020)

This version works only with Kiwi TCMS v8.2 or later!

  • Update to tcms-api==8.2.0

  • Patch for changed return value in plugin_helpers.Backend.test_case_get_or_create()

  • Call plugin_helpers.backend.finish_test_run() when done

v8.0.1 (10 February 2020)

This version works only with Kiwi TCMS v8.0 or later!

  • Adjust plugin due to API changes in Kiwi TCMS v8.0

  • Require tcms-api==8.0.1

v0.5 (07 January 2020)

  • Update junitparser from 1.3.4 to 1.41

v0.4 (20 September 2019)

  • Update junitparser from 1.3.2 to 1.3.4

  • Support XML files with <testsuites> root tag (Katalon Studio). Fixes Issue #9

v0.3 (10 April 2019)

  • Works with Kiwi TCMS v6.7 or newer

  • Uses new names of API methods

Release files for kiwitcms-junit.xml-plugin 15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kiwitcms-junit.xml-plugin 15.0
File Size Uploaded
kiwitcms_junit_xml_plugin-15.0.tar.gz 19.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kiwitcms-junit.xml-plugin 15.0
File Interpreter ABI Platform
kiwitcms_junit_xml_plugin-15.0-py3-none-any.whl Python 3 none any Details

Total release size: 39.3 kB

Release files / kiwitcms_junit_xml_plugin-15.0.tar.gz

Download URL kiwitcms_junit_xml_plugin-15.0.tar.gz
Size 19.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f52054a829c1e49f64bb8fdf06eda258bf3d465a9a45d13229a74c693619569c
BLAKE2b-256 checksum
How to use checksums
6ed060edab982dab078574ed88adcaa17b525214c4636ddaba83e360129dc44a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / kiwitcms_junit_xml_plugin-15.0-py3-none-any.whl

Download URL kiwitcms_junit_xml_plugin-15.0-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12539091b598769908b6d60c7322ede3a493f1b6da2b374105c0c471a4a673ad
BLAKE2b-256 checksum
How to use checksums
40e8ebad0b9c26ca67638349b375ddcb39ade1e986138787447c781c09951a98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

15.0 This release

2 release files

12.8.1

2 release files

12.7

2 release files

12.2

2 release files

12.1

2 release files

12.0

2 release files

11.3

2 release files

11.2

2 release files

11.0

2 release files

10.0

2 release files

9.0

2 release files

8.4

2 release files

8.3

2 release files

8.2

2 release files

8.0.1

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page