Test Anything Protocol (TAP) plugin for Kiwi TCMS
This package allows you to read Test Anything Protocol (TAP) files and send the results to Kiwi TCMS.
Installation
pip install kiwitcms-tap-plugin
Note: this plugin should be installed on the system executing your automated tests or a separate system whose task is to parse the results and import them into Kiwi TCMS. This is usually not your Kiwi TCMS container!
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 TAP 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 inside .github/workflows/testing.yml this looks like:
export TCMS_PRODUCT=$GITHUB_REPOSITORY export TCMS_PRODUCT_VERSION=$(echo $GITHUB_REF | sed "s|refs/heads/||" | sed "s|refs/||" | sed "s|/merge||") export TCMS_BUILD=$(echo $GITHUB_SHA | cut -c1-7)
Further documentation and behavior specification can be found here.
The above configuration creates a separate TestPlan for each branch, for example
TP-6: [TAP] Plan for kiwitcms/tap-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-tap-plugin /path/to/results.tap
Changelog
v12.8.1 (22 Dec 2023)
- Update tcms-api from 12.7 to 12.8.1
- Relax dependency requirement towards tcms-api for easier upgrade
v12.7 (11 Dec 2023)
- Update tcms-api from 11.3 to 12.7
- Update README to avoid confusions where to install this package. Closes Issue #62
- Build and test with Python 3.11
- Reformat source code with Black
- Enable CodeQL for code scanning
- Small refactoring internally
v11.3 (17 May 2022)
- Update tcms-api from 11.2 to 11.3
- Print information about created recrods if
-v
or--verbose
is specified on the command line - Allow multiple TAP files to be specified on the command line. Fixes Issue #57
v11.2 (15 May 2022)
- Update tap.py from 3.0 to 3.1
- Update tcms-api from 11.0 to 11.2. Closes Issue #5 and Issue #13
- Fix bug with traceback not being posted as comment. Issue #48
v11.0 (05 Dec 2021)
- Future compatible with upcoming Kiwi TCMS v11.0
- Update tcms-api from 10.0 to 11.0
- Pylint fixes
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
- Resolve a dependency issue in tests
v8.4 (28 Oct 2020)
- Update tcms-api to 8.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. Fixes Issue #9
v8.0.1 (10 February 2020)
This version works only with Kiwi TCMS v8.0 or later!
- Update to tcms-api==8.0.1
v8.0 (09 February 2020)
This version works only with Kiwi TCMS v8.0 or later!
- Adjust plugin due to API changes in Kiwi TCMS v8.0
- Update
tap.py
from 2.6.2 to 3.0 - Require
tcms-api>=8.0
v0.5 (07 January 2020)
- Update
tap.py
dependency from 2.6.1 to 2.6.2
v0.4 (23 September 2019)
- Include traceback from TAP file as TE comment. Fixes Issue #7 (Christophe CHAUVET)
v0.3 (10 April 2019)
- Works with Kiwi TCMS v6.7 or newer
- Uses new names of API methods