Microsoft 开发者工具升级总结
Microsoft 近日发布了其开发者工具的升级版本 17.8.0,主要针对 Microsoft.CodeCoverage 工具进行了显著改进。此次更新引入了新工具 dotnet-coverage,并带来了多项增强功能,包括新的报告格式、自动合并工具、性能提升和改进的文档。
新工具 dotnet-coverage 的引入
dotnet-coverage 是此次更新中的一个重要新增工具,其主要功能包括:
- 收集控制台和 Web 应用程序的代码覆盖率
- 合并覆盖率报告
- 对二进制文件进行插桩
- 计算单个测试的代码覆盖率
该工具显著提升了 Microsoft.CodeCoverage 的代码覆盖率分析的完整性和效率。
平台兼容性的扩展
工具的 平台兼容性 通过引入 静态插桩 得到了扩展。Microsoft 的代码覆盖率工具最初依赖于 Windows 平台上的动态插桩,后来版本引入了静态代码覆盖率收集,预先对磁盘上的库进行插桩,以支持跨平台的 .NET 应用。动态插桩仍然是默认选项,但在非 Windows 系统上,静态插桩会被激活,以避免冗余的动态插桩。开发者可以通过配置标志来控制使用哪种插桩方法。
报告格式的全面改进
代码覆盖率报告格式进行了全面改进,以便更好地与辅助工具(如 ReportGenerator)集成。默认的 .coverage 格式保持不变,同时引入了多种新格式,包括:
- Binary(默认)格式:适用于 Visual Studio Enterprise 的 .coverage 格式
- Cobertura 格式:适用于 Visual Studio Enterprise 和文本编辑器的 .cobertura.xml 格式
- XML 格式:适用于 Visual Studio Enterprise 和其他文本编辑器的 .xml 格式
解决方案的自动合并功能
此次更新引入了解决方案级别的自动合并功能。通过在解决方案级别执行命令 dotnet test --collect 'Code Coverage',可以自动合并所有相关测试项目的代码覆盖率数据。这一功能简化了 复杂解决方案 中的代码覆盖率管理。
性能提升
在 16.5 版本之前,代码覆盖率报告的收集过程显著影响了测试的 执行速度。此次更新修复了这一问题,开发者现在可以享受到高达 80% 的性能提升,使代码覆盖率分析更加高效且不干扰测试过程。详细 基准测试结果 可在官方公告中查看。
如何开始使用最新功能
开发者可以通过将最新的稳定包引入测试项目来开始使用 最新功能 并优化构建过程。以下是需要包含的包引用:
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.CodeCoverage" Version="17.8.0" />对于不包含 C++ 代码的解决方案,开发者可以通过在 runsettings 配置中禁用原生代码覆盖率来提升速度和可靠性:
<EnableStaticNativeInstrumentation>False</EnableStaticNativeInstrumentation>
<EnableDynamicNativeInstrumentation>False</EnableDynamicNativeInstrumentation>文档改进
最新的文档改进可以在更新的 GitHub 仓库 中找到。该仓库为用户提供了全面的信息资源和 示例,以改善文档体验。
此次更新显著提升了 Microsoft.CodeCoverage 工具的功能和性能,为开发者提供了更加高效和灵活的代码覆盖率分析解决方案。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。