[MS] MSTest SDK:.NET 8的测试配置与灵活性新篇 - devamazonaws.blogspot.com
本篇翻译于Marco Rossignoli 和Amaury Levé 的Introducing MSTest SDK – Improved Configuration & Flexibility。 我们很高兴地宣布,基于 MSBuild Project SDK 系统构建的全新 MSTest SDK已推出。它旨在通过合理的默认值和灵活的选项使项目配置更加容易,从而为您提供更好的 MSTest 测试体验。 这种新体验是建立在最近推出的 MSTest 运行程序的基础上(请查看公告)https://devblogs.microsoft.com/dotnet/introducing-ms-test-runner/,以进一步提高您的体验。 这个新的运行程序是一种轻量级、可靠且高性能的运行 MSTest 测试的方式,作为 MSTest.TestAdapter NuGet 包的依赖项发布。该运行器及其扩展由多个 NuGet 包组成,以提供可扩展、灵活且可配置的测试运行体验。然而,可定制性可能会导致许多问题:推荐的扩展是什么?正确的默认值是什么?如何对齐版本? 这就是 MSTest SDK 的用武之地。 MSTest SDK 入门 开始使用新的 MSTest SDK 非常简单。 只需创建一个 MSTest 项目(或更新现有的 MSTest 项目)并将 .csproj 文件的内容替换为以下内容:
Post Updated on April 30, 2024 at 08:32AM
Thanks for reading
from devamazonaws.blogspot.com
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<!-- Additional properties and items for your tests. -->
</Project>
请注意,您可以使用 MSTest 支持的任何目标框架(即 net462 及更高版本)。 MSTest SDK的优点 这个新的 SDK 为您和您的测试项目提供了许多优势,例如:
- 更好的默认值
- 简化使用
- MSTest 运行程序的可扩展性
- 更容易选择加入新功能(例如本机 AOT 测试)。
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<!-- Enable Microsoft.Testing.Extensions.CrashDump package on top of the default profile -->
<EnableMicrosoftTestingExtensionsCrashDump>true</EnableMicrosoftTestingExtensionsCrashDump>
</PropertyGroup>
<!-- Additional properties and items for your tests. -->
</Project>
您可以参考我们的 MSTest SDK 文档以获取有关这些配置文件及其默认值的更多信息。 测试Native AOT MSTest 是第一个支持在Native AOT 模式下运行测试的 .NET 测试框架和运行器。使用 MSTest SDK 时,我们将自动检测您是否要发布到 AOT,并透明地交换所有必需的测试包和配置以匹配此专用模式。 有关使用Native AOT 进行测试的更多信息,请参阅此博文:使用Native AOT 进行测试。 不使用 MSTest SDK 的项目设置示例:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>exe</OutputType>
<PublishAot>true</PublishAot>
</PropertyGroup>
<ItemGroup>
<!--
Experimental MSTest Engine & source generator,
close sourced, licensed the same as our extensions
with Microsoft Testing Platform Tools license.
-->
<PackageReference Include="MSTest.Engine" Version="1.0.0-alpha.24163.4" />
<PackageReference Include="MSTest.SourceGeneration" Version="1.0.0-alpha.24163.4" />
<PackageReference Include="Microsoft.CodeCoverage.MSBuild" Version="17.10.4" />
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.10.4" />
<PackageReference Include="Microsoft.Testing.Extensions.TrxReport" Version="1.0.2" />
<PackageReference Include="Microsoft.Testing.Platform.MSBuild" Version="1.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.2.2" />
<PackageReference Include="MSTest.Analyzers" Version="3.2.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" />
</ItemGroup>
<ItemGroup>
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>
</Project>
使用 MSTest SDK 进行相同的项目设置:
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishAot>true</PublishAot>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" />
</ItemGroup>
<ItemGroup>
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>
</Project>
下一步计划? 虽然MSTest SDK 风格仍在开发中,但它已经成为我们即将推出的演变和功能的基石。我们强烈建议所有 MSTest 用户过渡到此 SDK 样式,该样式将成为我们使用 .NET 9 的 MSTest 项目模板的标准。 我们还计划在即将发布的版本中添加更多场景,例如 Playwright 和 WinUI。 我们欢迎任何关于如何进一步改进和完善它的反馈,以确保它符合用户的不同需求和期望。 分享反馈的最佳方式是在我们的 microsoft/testfx 存储库中报告问题。 Post Updated on April 30, 2024 at 08:32AM
Thanks for reading
from devamazonaws.blogspot.com
Comments
Post a Comment