VSTestPlaylistTools.TrxToPlaylistConverter
2.0.0
dotnet add package VSTestPlaylistTools.TrxToPlaylistConverter --version 2.0.0
NuGet\Install-Package VSTestPlaylistTools.TrxToPlaylistConverter -Version 2.0.0
<PackageReference Include="VSTestPlaylistTools.TrxToPlaylistConverter" Version="2.0.0" />
<PackageVersion Include="VSTestPlaylistTools.TrxToPlaylistConverter" Version="2.0.0" />
<PackageReference Include="VSTestPlaylistTools.TrxToPlaylistConverter" />
paket add VSTestPlaylistTools.TrxToPlaylistConverter --version 2.0.0
#r "nuget: VSTestPlaylistTools.TrxToPlaylistConverter, 2.0.0"
#:package VSTestPlaylistTools.TrxToPlaylistConverter@2.0.0
#addin nuget:?package=VSTestPlaylistTools.TrxToPlaylistConverter&version=2.0.0
#tool nuget:?package=VSTestPlaylistTools.TrxToPlaylistConverter&version=2.0.0
VS.TestPlaylistTools
A collection of .NET libraries and tools for creating, parsing, and manipulating Visual Studio test playlist files.
Packages
Tools
- GitHub Action - A GitHub action wrapping the .NET tool
- trx-to-vsplaylist - .NET CLI tool for converting TRX files to VS playlists
Libraries
- VSTestPlaylistTools - Playlist V1/V2 types, builders/parsers, and unified loading utilities
- VSTestPlaylistTools.TrxToPlaylistConverter - Library for converting TRX test results to V1 playlists
AOT compatibility status
Both VSTestPlaylistTools and VSTestPlaylistTools.TrxToPlaylistConverter are fully AOT-compatible:
- Both multi-target
netstandard2.1,net8.0, andnet10.0 - Both enable
IsAotCompatible=trueon theirnet8.0+targets (AOT support requires .NET 8 or later) - All
XmlSerializerusage has been replaced with manualXmlWriter/XmlReaderthroughout both packages - Both packages pass full AOT publishing and smoke testing in CI
Quick Start
Installing the CLI Tool
dotnet tool install --global trx-to-vsplaylist
Converting a TRX file to a VS Playlist
trx-to-vsplaylist convert input.trx -o output.playlist
Convert failed tests only
trx-to-vsplaylist convert input.trx -o failed.playlist --outcome Failed
Using the V2 Playlist API
dotnet add package VSTestPlaylistTools
using VS.TestPlaylistTools.PlaylistV2;
var playlist = new PlaylistRoot();
playlist.Rules.Add(
BooleanRule.Any(
"MyTests",
PropertyRule.Namespace("MyNamespace"),
PropertyRule.Trait("Integration"))); // matches tests with trait value "Integration"
PlaylistV2Builder.SaveToFile(playlist, "MyPlaylist.playlist");
Using the V1 Playlist API
dotnet add package VSTestPlaylistTools
using VS.TestPlaylistTools.PlaylistV1;
var playlist = PlaylistV1Builder.Create(["MyTest.FullyQualifiedName"]);
PlaylistV1Builder.SaveToFile(playlist, "MyPlaylist.playlist");
Parsing a V2 Playlist
using VS.TestPlaylistTools.PlaylistV2;
var playlist = PlaylistV2Parser.FromFile("MyPlaylist.playlist");
foreach (var rule in playlist.Rules)
Console.WriteLine(rule);
Loading a Playlist (auto-detect V1 or V2)
Use PlaylistLoader when you don't know the playlist version ahead of time:
using VS.TestPlaylistTools;
// Returns IPlaylistRoot — works with both V1 and V2 files
IPlaylistRoot playlist = PlaylistLoader.Load("MyPlaylist.playlist");
Console.WriteLine($"Version: {playlist.Version}");
📚 Documentation
- PlaylistV2 API Documentation
- PlaylistV1 Documentation
- TRX Converter CLI Documentation
- Sample Playlists
🤝 Contributing
Contributions are welcome! Please open issues or submit pull requests on GitHub.
📄 License
MIT License. See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- TrxLib (>= 1.0.0)
- VSTestPlaylistTools (>= 2.0.0)
-
net10.0
- TrxLib (>= 1.0.0)
- VSTestPlaylistTools (>= 2.0.0)
-
net8.0
- TrxLib (>= 1.0.0)
- VSTestPlaylistTools (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.