Skip to content

kiwitcms/junit.xml-plugin

Repository files navigation

junit.xml plugin for Kiwi TCMS

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

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