Microsoft.Testing.Platform 概述

Microsoft.Testing.Platform 是 VSTest 的轻型可移植替代项,用于在所有上下文(持续集成 (CI) 管道、CLI、Visual Studio 测试资源管理器和 VS Code 文本资源管理器等)中运行测试。 Microsoft.Testing.Platform 直接嵌入到 MSTest 测试项目中,并且不存在任何其他应用依赖项(例如运行测试所需的 vstest.consoledotnet test)。

Microsoft.Testing.Platform 为开源项目。 可以在 microsoft/testfx GitHub 存储库中找到 Microsoft.Testing.Platform 代码。

受支持的测试框架

运行和调试测试

系统会以可直接运行(或调试)的可执行文件的形式生成 Microsoft.Testing.Platform 测试项目。 没有额外的测试运行控制台或命令。 如果出现错误,应用会退出并显示非零退出代码,这与大多数可执行文件的典型情况相同。 有关已知退出代码的详细信息,请参阅 Microsoft.Testing.Platform 退出代码

重要

默认情况下,Microsoft.Testing.Platform 会收集遥测数据。 有关选择退出的详细信息和选项,请参阅 Microsoft.Testing.Platform 遥测

使用 dotnet publish 发布测试项目并直接运行应用是运行测试的另一种方法。 例如,执行 ./Contoso.MyTests.exe。 在某些情况下,也可以使用 dotnet build 生成可执行文件,但可能需要考虑极端情况,例如本机 AOT

使用 dotnet run

dotnet run 命令可用于生成和运行测试项目。 这是运行测试的最简单方法,尽管有时速度最慢。 在本地编辑和运行测试时,使用 dotnet run 是可行的,因为它可确保在需要时重新生成测试项目。 dotnet run 还将在当前文件夹中自动查找项目。

dotnet run --project Contoso.MyTests

有关 dotnet run 的详细信息,请参阅 dotnet run

使用 dotnet exec

dotnet execdotnet 命令用于执行(或运行)已生成的测试项目,这是直接运行应用程序的替代方法。 dotnet exec 需要已生成的测试项目 dll 的路径。

dotnet exec Contoso.MyTests.dll

dotnet Contoso.MyTests.dll

注意

提供测试项目可执行文件(*.exe)的路径导致错误:

Error:
  An assembly specified in the application dependencies manifest
  (Contoso.MyTests.deps.json) has already been found but with a different
  file extension:
    package: 'Contoso.MyTests', version: '1.0.0'
    path: 'Contoso.MyTests.dll'
    previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net8.0\Contoso.MyTests.exe'

有关 dotnet exec 的详细信息,请参阅 dotnet exec

使用 dotnet test

Microsoft.Testing.Platform 提供包含 vstest.console.exedotnet test 的兼容性层,以确保可以在启用新执行方案时像以前一样运行测试。

dotnet test Contoso.MyTests.dll

选项

下面的列表仅描述了平台选项。 若要查看每个扩展提供的特定选项,请参阅扩展文档页或使用 --help 选项。

  • --diagnostic

启用诊断日志记录。 默认日志级别为 Trace。 该文件以名称格式 log_[MMddHHssfff].diag 写入到输出目录中。

  • --diagnostic-filelogger-synchronouswrite

强制内置的文件记录器以同步方式写入日志。 对于在进程崩溃时不想丢失任何日志条目的场景非常有用。 这会降低测试执行速度。

  • --diagnostic-output-directory

诊断日志记录的输出目录,如果未指定,则会在默认的 TestResults 目录中生成该文件。

  • --diagnostic-output-fileprefix

日志文件名的前缀。 默认为 "log_"

  • --diagnostic-verbosity

当使用 --diagnostic 开关时定义详细程度级别。 可用值包括 TraceDebugInformationWarningErrorCritical

  • --help

打印出有关如何使用命令的说明。

  • -ignore-exit-code

允许忽略一些非零退出代码,并转而返回为 0。 有关详细信息,请参阅忽略特定的退出代码

  • --info

显示有关 .NET 测试应用程序的高级信息,例如:

  • 平台。
  • 环境。
  • 每个已注册的命令行提供程序,例如其 nameversiondescriptionoptions
  • 每个已注册的工具,例如其 commandnameversiondescription,以及所有命令行提供程序。

此功能用于了解将注册相同命令行选项的扩展,或扩展(或平台)的多个版本之间可用选项的更改。

  • --list-tests

列出可用的测试。 不会执行测试。

  • --minimum-expected-tests

指定预期要运行的最小测试数。 默认情况下,至少要运行一个测试。

  • --results-directory

用于放置测试结果的目录。 如果指定的目录不存在,则会创建该目录。 默认为 TestResults,位于包含测试应用程序的目录中。

另请参阅