Skip to content

Youssef1313/YTest.MTP.XUnit2

Repository files navigation

YTest.MTP.XUnit2

This package provides Microsoft.Testing.Platform support for xunit 2 test projects.

The general recommendation is to migrate from xunit 2 to xunit.v3 which already supports MTP. However, if you are stuck with xunit 2 (e.g, too hard to migrate to xunit.v3), and you want to migrate from VSTest to Microsoft.Testing.Platform, this package is for you.

Supported features

  • The VSTest --filter.
    • The VSTest --filter syntax is actually not supported by xunit.v3 under MTP. However, it's supported by this package for xunit 2 users. This is done to ease migration.
  • The VSTest --settings option to specify a runsettings file is partially supported.
    • The VSTest --settings option is actually not supported by xunit.v3 under MTP. However, it's supported by this package for xunit 2 users. This is done to ease migration.
    • Note that not the full RunSettings options are supported. Only the xunit-specific configurations are supported.
  • Reporting test results (passed, failed, skipped).
  • Discovering tests, along with traits.
  • TestMethodIdentifierProperty is supported.
  • xunit.runner.json is supported.
  • Reporting TRX files via Microsoft.Testing.Extensions.TrxReport (using --report-trx) is supported.
  • Source information are reported, except when IDE explicitly requests to not calculate it (for perf reasons).
  • MTP's --treenode-filter is supported.
  • MTP's --maximum-failed-tests is supported.

Known limitations

There are known limitations on the current support of MTP for xunit 2 which is provided by this package. If impacted by these, consider reacting with thumbs up to the issue. If you found other limitations and/or bugs, consider opening a new issue for it.

How to use

To add Microsoft.Testing.Platform support to your xunit 2 test projects, all you need is to add a PackageReference to YTest.MTP.XUnit2, and you have MTP support!

There are additional concerns that are general for any VSTest to MTP migration.

  1. If using .NET 10 SDK or later (recommended), update global.json to specify Microsoft.Testing.Platform as the test runner.
  2. Update any CI YML files or scripts to use the right command-line options for MTP.
  3. If you don't need VSTest support anymore, you can also remove the package references of xunit.runner.visualstudio and Microsoft.NET.Test.Sdk
  4. Enjoy running xunit 2 on Microsoft.Testing.Platform!