trx2junit 2.0.3

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global trx2junit --version 2.0.3                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local trx2junit --version 2.0.3                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=trx2junit&version=2.0.3                
nuke :add-package trx2junit --version 2.0.3                
CI NuGet
Build Status NuGet

trx2junit (.NET Core global tool)

Helper for converting trx-Testresults (dotnet test --logger "trx") to a JUnit-based XML file.

Can be used for CI-scenarios, like CircleCi or GitLab, where as test results JUnit is expected.

Usage

trx to junit

When installed as .NET Core Global Tool: trx2junit {trxFile} where trxFile is the path to the trx-file.

You can pass more than one trx file, each will create it's own junit xml file.

# handle two files
$ trx2junit a.trx b.trx
Converting 2 trx file(s) to JUnit-xml...
Converting 'a.trx' to 'a.xml'
Converting 'b.trx' to 'b.xml'
done in 0.1234567 seconds. bye.

# for shells that handle wildcard expansion:
$ trx2junit results/*.trx
Converting 1 trx file(s) to JUnit-xml...
Converting 'example.trx' to 'example.xml'
done in 0.1234567 seconds. bye.

If the shell won't handle wildcard expansion, trx2junit handles the expansion of files in the same directory.

A different location for the JUnit-output can be specified:

# specify different output location
$ trx2junit a.trx --output ../results

# or
$ trx2junit --output results a.trx ../tests/b.trx
Jenkins JUnit

For Jenkins JUnit on the testcase the status-attribute is set. By default 1 is set for success, and 0 for failure. This can be configured via environment varialbes (note: if omitted, the default values will be used):

Status Variable default value
success TRX2JUNIT_JENKINS_TESTCASE_STATUS_SUCCESS 1
failure TRX2JUNIT_JENKINS_TESTCASE_STATUS_FAILURE 0
skipped TRX2JUNIT_JENKINS_TESTCASE_STATUS_SKIPPED not set

With environment variable TRX2JUNIT_JUNIT_ERROR_MESSAGE_IN_CDATA set, the error message from a failing test will be repeated in the CDATA-content of the <failure> element. See this comment for further info.

junit to trx

With option --junit2trx a conversion from junit to trx can be performed.

If a given xml-file is not a junit-file, a message will be logged to stderr and the exit-code is set to 1. A junit-file is considered valid if it either conforms to junit.xsd or jenkins-junit.xsd.

Installation

dotnet tool install -g trx2junit

For CI-scenarios execute before usage:

export PATH="$PATH:/root/.dotnet/tools"

Check also the documentation of your CI-system on how to persist the PATH between steps, etc. E.g. in CircleCI you need to run

echo 'export PATH="$PATH:/root/.dotnet/tools"' >> "$BASH_ENV"

Prequisites / Supported SDKs

In order to install this tool a .NET SDK must be present. Supported SDKs are:

  • .NET 6.0
  • .NET 5.0
  • .NET Core 3.1

Core functionality as standalone package trx2junit.Core

Starting with v2.0.0 it's possible to use the core functionality as standalone package trx2junit.Core.
The tool (see above) itself is a consumer of that package.

After adding a reference to trx2junit.Core one can use it in "commandline-mode" like

Worker worker         = new();
WorkerOptions options = WorkerOptions.Parse(args);
await worker.RunAsync(options);

or create the WorkerOptions via the constructor, and pass that instance into RunAsync of the worker.

Development channel

To get packages from the development channel use a nuget.config similar to this one:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="gfoidl-public" value="https://pkgs.dev.azure.com/gh-gfoidl/github-Projects/_packaging/gfoidl-public/nuget/v3/index.json" />
    </packageSources>
</configuration>
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
2.1.0 1,308,439 2/20/2024
2.0.4 2,366,969 8/26/2022
2.0.3 141,045 7/9/2022
2.0.2 2,234 7/8/2022
2.0.1 41,195 6/28/2022
2.0.0 1,568,888 12/1/2021
1.6.0 91,145 11/15/2021
1.5.0 689,548 2/28/2021
1.4.1 57,593 2/1/2021
1.4.0 150,312 11/11/2020
1.3.2 193,127 7/16/2020
1.3.1 154,959 6/14/2020
1.3.0 255,765 11/15/2019
1.2.6 78,244 8/26/2019
1.2.5 50,994 6/13/2019
1.2.4 23,679 4/19/2019
1.2.3 28,129 2/20/2019
1.2.2 12,662 12/16/2018
1.2.1 4,928 11/13/2018
1.2.0 8,504 9/14/2018
1.1.0 1,311 9/12/2018
1.0.2 3,688 7/10/2018
1.0.1 1,670 6/1/2018
1.0.0 1,361 5/23/2018