Skip to content

Generate Markdown test reports from TRX or JUnit files with the Cli or directly with the VSTest logger integration. Liquid Test Reports provides the ability to use built in templates, or provide your own liquid template.

License

Notifications You must be signed in to change notification settings

kurtmkurtm/LiquidTestReports

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fish logo

Liquid Test Reports are logger extensions for the Visual Studio Test Platform that provide flexible test report generation using liquid templates. This project contains an extensible core for code based extension, a custom logger for providing your own templates without code, and a Markdown implementation.

Packages

Package Version Description
LiquidTestReports.Cli NuGet Badge Command line tool to combine and convert TRX and JUnit tests reports into Markdown with Liquid template support
LiquidTestReports.Markdown NuGet Badge VS Test logger for generating test reports in Markdown format
LiquidTestReports.Custom NuGet Badge VS Test logger for generating reports from user provided liquid templates
LiquidTestReports.Core NuGet Badge Core library for creating custom VS Test loggers with liquid template support

Changelog

Latest:

2.0.0-beta.2

  • [All]
    • Add support for
      • .NET 7
      • .NET 8
    • Drop support for the following EOL frameworks
      • .NET Framework 4.5.1
      • .NET 5.0
      • .NET Core 3.1 (LTS)
      • .NET Core 2.1 (LTS)

1.4.3 beta

  • [Cli]
    • Add parameter support for the CLI based on the logger implementation
    • Fix issue where folder wasn't being used at file load time

1.3.2 beta

  • [Cli]
    • Add filename pattern matching support for CLI

1.2.1 beta

  • [Cli]
    • Add JUnit XML support
    • Change template input to use file instead of content string

Previous changes

LiquidTestReports.Cli (Beta):

NuGet Badge

Generate Markdown or Custom Test Reports from existing TRX files

Installation

dotnet tool install --global LiquidTestReports.Cli --version 2.0.0-beta.2

Usage

liquid [options]

Options:

--inputs [inputs] Array of formatted configuration strings for test report inputs, with configurations separated by a semicolon

  • File=file-name; The path or glob pattern for input file/s
  • Folder=folder-name; - Base directory for finding test files
  • Format=report-format; Optional input report format, case insensitive, supported values are Trx of JUnit. Defaults to Trx.
  • GroupTitle=group-title; Optional title to group reports under, test runs with the same group title will be merged.
  • TestPrefix=test-prefix; Optional test suffix, if provided test origination for the provided report will have the suffix appended to its name.
  • key=value; Optional key value pairs, only for custom template usage.

--parameters [parameters] Array of formatted key value strings for custom template usage, with configurations separated by a semicolon

--output-file [output-file] Path to save test report to.

--title [title] Optional overall report title displayed in default report template. Defaults to "Test Run".

--template [template] Optional user defined liquid template. Defaults to the multi report markdown template is used.

--version Show version information.

-?, -h, --help Show help and usage information.

Examples

JUnit to Markdown

liquid --inputs "File=xUnit-net461-junit-sample.xml;Format=JUnit" --output-file report.md 

TRX to Markdown - Sample Output

liquid --inputs "File=xUnit-net461-sample.trx;Format=Trx" --output-file SingleInput.md 

Multiple Report inputs, grouping, and custom template usage

Removal

Global tool removal:

dotnet tool uninstall LiquidTestReports.Cli -g

LiquidTestReports.Markdown

NuGet Badge

The Markdown logger package is a ready to use implementation of the test logger that generates Markdown format reports.

Sample Report

How to use:

  1. Install the markdown logger to your test project by running the following command dotnet add package LiquidTestReports.Markdown

  2. Run the tests using the supplied logger dotnet test --logger "liquid.md"

  3. Report will be generated in the test results folder

See also: Testing .NET Core Apps with GitHub Actions

LiquidTestReports.Custom

NuGet Badge

The custom logger package allows you to create your own reports simply by passing the file path of the template to the test logger. The list of template properties are available here.

Sample Report (using example template below)

How to use:

  1. Install the core logger to your test project either using the nuget or by running the following command

    dotnet add package LiquidTestReports.Custom

  2. Add a new text file to your test project, and set Copy to Output Directory as Copy always, below is a starting sample template

Test Statistics:

None: {{ run.test_run_statistics.none_count }}
Passed: {{ run.test_run_statistics.passed_count }}
Failed: {{ run.test_run_statistics.failed_count }}
Skipped: {{ run.test_run_statistics.skipped_count }}
Not Found: {{ run.test_run_statistics.not_found_count }}
Total: {{ run.test_run_statistics.executed_tests_count }}
  1. Run the tests using the supplied logger

    dotnet test --logger "liquid.custom;Template=TemplateExample.txt"

  2. Report will be generated in the test results folder

For a more detailed example, take a look at included Markdown template.

More liquid template and syntax documentation is available on the Shopify Github.

LiquidTestReports.Core

NuGet Badge

The core project is utilised by the above two loggers and can be used to implement your own, however, this is yet to be documented. The custom and markdown implementations provide an guide of how to implement this.

How to install:

  1. Install the core logger to your test project either using the nuget or by running the following command

    dotnet add package LiquidTestReports.Core

Compatibility

.NET 4.5.1+ and .NET Core 3.0+

No additional configuration is required.

.NET Core 2.1 - 2.2

By default, the logger will not be copied to the output folder, and will not be discovered. To use with these versions, include CopyLocalLockFileAssemblies in your test project. This will copy the logger to your output folder.

<PropertyGroup>
  <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>

Note: this will also copy other NuGet dependencies into your output folder

.NET Core 2.0

Issues appear to be present in testing with .NET Core 2.0, as this target is no longer supported, it is recommended to update to supported version of .NET Core.

License

LiquidTestReports is under BSD 2-Clause License.

This library utilises the following libraries under the Apache 2.0 license

This library utilises the following libraries under the MIT License