这次我们的代码覆盖工具带来了哪些新功能?

2024-01-04

作者:Jakub Chocholowicz - Principal Software Engineer, .NET
排版:Alan Wang

我们带来了一个让开发者非常兴奋的消息!我们更新了代码覆盖工具 Microsoft.CodeCoveragedotnet-coverage ,带来了一些出色的功能。如果您不熟悉我们的工具,请查看 入门指南 。让我们深入了解这些将简化编码体验的改动。

支持所有平台

由于添加了静态检测,我们的工具可以在任何 .NET 支持的平台上运行。了解有关静态和动态检测的更多信息,并探索其他 支持的平台

新的报告格式

我们改进了代码覆盖率报告格式,以便代码覆盖工具与 ReportGenerator 等其他工具可以顺利集成。虽然默认值仍然是熟悉的 .coverage 格式,但我们引入了一些新格式:

  • Binary (默认):.coverage(Microsoft 的特殊格式)- 你可以在 Visual Studio Enterprise 中打开这种格式的文件。 例子
  • Cobertura :.cobertura.xml(开源 XML 格式) - 你可以在 Visual Studio Enterprise以及任何文本编辑器中打开这种格式的文件,也可以使用 ReportGenerator 生成 HTML 报告。 例子
  • XML :.xml(Microsoft 的 XML 格式)- 你可以在 Visual Studio Enterprise 或任何文本编辑器中打开这种格式的文件。 例子

dotnet-coverage

隆重推出我们的新工具 dotnet-coverage!它执行以下任务:

  • 收集控制台应用程序的代码覆盖率。 例子
  • 收集 Web 应用程序的代码覆盖率。 例子
  • 合并覆盖率报告。 例子
  • 检测二进制文件。 例子
  • 单独计算每个测试的代码覆盖率。 例子

请访问 dotnet-coverage 文档以了解更多信息。

自动合并解决方案

现在,在解决方案层级运行 dotnet test --collect “Code Coverage” 会自动合并所有测试项目的代码覆盖率。请访问解决方案的 场景 24 代码覆盖率 以查看完整示例。

改进的文档

您可以浏览我们位于 microsoft/codecoverage 的最新 GitHub 存储库,获取您需要的所有 信息示例

更好的性能

在 16.5 版本之前,收集代码覆盖率报告会显著减慢测试的执行速度。现在我们解决了这个问题,性能提升了 80%。有关详细结果和日志,请参阅 性能部分 的文档。

时间 比率
Microsoft.CodeCoverage 16.5 03:52:53 1.00
Microsoft.CodeCoverage 17.0 02:25:49 0.63
Microsoft.CodeCoverage 17.5 01:27:52 0.38
Microsoft.CodeCoverage 17.9 00:50:00 0.21

您需要做什么

请确保在您的测试项目中使用我们最新的稳定包来尝试使用最新功能并加速项目的构建:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.CodeCoverage" Version="17.8.0" />

如果您的解决方案没有任何 C++ 代码,请在运行设置中使用以下标志关闭本机代码覆盖,使其更快、更可靠:

<EnableStaticNativeInstrumentation>False</EnableStaticNativeInstrumentation>
<EnableDynamicNativeInstrumentation>False</EnableDynamicNativeInstrumentation>

您可以访问配置文档以查看其他选项和我们 设置 的完整示例。

特别感谢

非常感谢 Faisal HafeezMarco RossignoliMariam AbdullahCodrin-Victor PoienaruPavel Horak 对这个项目的杰出贡献!????????

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这次我们的代码覆盖工具带来了哪些新功能? 的相关文章

  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • 托管 .NET 代码中的“访问冲突写入位置...”

    我收到以下异常 MqSearch exe 中 0x000007FE21AFE593 mscorlib ni dll 处出现未处理的异常 0xC0000005 写入位置 0x00000006609476FD 时出现访问冲突 代码是完全托管的
  • Sitecore - 隐藏功能区中的按钮

    我为特定内容项创建了上下文功能区 我有两个按钮 可以将项目 升级 或 降级 到某一类别 该部分只能有一个 是否可以根据某种隐藏代码中的内容状态隐藏其中一个按钮 我了解如何链接到 Click 事件 但我想知道是否有某种加载事件可供自定义功能区
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 如何根据给定的点生成热图

    我想生成 Windows 形式的热图 我有一组点作为输入 如何以最简单的方式做到这一点 谢谢 基于此处已有的答案 此方法允许您指定Colors您希望用作最大和最小颜色 private Color HeatMapColor double va
  • 如何在完成之前从 ReplaySubject 获取最新值

    我需要一种方法来获取添加到 ReplaySubject 中符合特定条件的最新项目 下面的示例代码完成了我需要它做的事情 但感觉不是正确的方法 static void Main string args var o new ReplaySubj
  • 如何拦截 Boo 中的方法调用?

    红宝石有method missing Python有getattr Boo 是否提供了一些可以用来拦截方法调用的东西 是的 布有IQuackFu http docs codehaus org pages viewpage action pa
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID
  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • Windows 7 任务栏:捕获缩略图

    是否可以从 Win7 任务栏捕获 实时 缩略图 我想在我的应用程序中显示 另一个窗口的 预览 但如何使用 NET 提取这些预览 Yes MSDN 杂志解释了如何 http msdn microsoft com en us magazine
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创

随机推荐

  • 【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】

    算法题 算法刷题专栏 面试必备算法 面试高频算法 越难的东西 越要努力坚持 因为它具有很高的价值 算法就是这样 作者简介 硕风和炜 CSDN Java领域新星创作者 保研 国家奖学金 高中学习JAVA 大学完善JAVA开发技术栈 面试刷题
  • 题解 | #删除字符串中出现次数最少的字符# 利用map统计

    比预期的要低 HR打电话说是14级 不分ABC 说制造类供应链类工资和研发体系不一样 整体就要低一些 offer选择 大家帮忙看看 offer选择 大家帮忙看看 有奖活动 什么事是你实习了才知道的 春招会有好的国央企吗 招前端实习生 北京快
  • extractor-java 用法备忘录

    需要先反编译一下 反编译其实是不能用它里面自带的那个 class2java py 我这里的建议是自己先用 jd gui 反编译 然后保存一下 但是如果你的 jar 包特别多 也会生成很多的 zip 这里写一个脚本提取一下 import os
  • hw蓝队初级的一次面试(基础)

    OWASP top10 1 失效的访问控制 越权 2 加密失败 3 注入 4 不安全的设计 5 安全配置错误 6 易受攻击和过时的组件 7 认证和授权失败 8 软件和数据完整性故障 9 安全日志记录和监控失效 10 服务端请求伪造 ssrf
  • 苹果Vision Pro将于1月27日上市!

    在无数期待中 苹果全新产品Vision Pro头显终于定下上市日期 彭博社记者马克 古曼 Mark Gurman 于近日在X 前推特 平台爆料了这一信息 预计苹果Vision Pro头显将于2024年1月27日率先在美国上市 在过去看来遥不
  • 图像分割-Grabcut法(C#)

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 本文的VB版本请访问 图像分割 Grabcut法 CSDN博客 GrabCut是一种基于图像分割的技术 它可以用于将图像中的前景和背景分离
  • Rokae机械臂 上位机使用与SDK开发切换

    操作环境说明 1 上位机 使用软件 Robot Assist软件 Rokae机械臂自带 使用环境 win10 win11 2 SDK开发 使用语言 C 开发环境 Ubuntu 上位机使用与SDK开发切换具体操作 win下配置 在robot
  • Python入学测试题 江苏某线下培训机构出题

    入学测试题 温馨提示 为检测自身的情况 请认真作答 不要进行上网搜答案 1 实现冒泡排序 for i in range len nums for j in range 0 len nums i 1 if nums j gt nums j 1
  • 揭秘文本编辑器专家的PDF软件轻松批量将PDF转TXT,简单好用的办公软件推荐

    在数字时代 PDF格式因其稳定性和跨平台性而备受青睐 然而 有时候我们需要将PDF文档转换为TXT文本文档 以便于编辑和重新利用内容 这时候 一款高效 准确的转换工具就显得尤为重要 首助编辑高手软件 正是这样一款能够满足您需求的软件 软件具
  • 低压浪涌保护防雷器的应用方案

    浪涌 是指电力系统中出现的瞬时过电压或过电流 它们的持续时间很短 但幅值很高 可能达到几千伏或几千安 浪涌的主要来源有两种 一是雷电冲击 二是电力系统的切换操作 浪涌会对电气设备造成严重的损坏 甚至引发火灾或爆炸 因此 保护电气设备免受浪涌
  • 重磅国赛开赛!中国大学生服务外包创新创业大赛飞桨双赛道开放报名

    中国大学生服务外包创新创业大赛是服务外包领域唯一的创新 创业国家级赛事 是中国高等教育学会 全国普通高校学科竞赛排行榜 竞赛 服创大赛紧贴现代服务经济和创新 创业 创富主题 强调应用导向和产学互动 在服务外包领域搭建一个大学生创新与创业能力
  • No Magic—复杂机电产品系统架构开发套件

    产品概述 CATIA Magic 原名MagicDraw 俗称No Magic 被达索收购后融入3DExperience产品协同研发管理平台中 形成更具协同体验的系统工程解决方案 该软件提供对SysML UML UAF语言的完整支持 提供独
  • 全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛题目+答案讲解——网络数据包分析

    博主介绍 博主介绍 大家好 我是 hacker routing 很高兴认识大家 主攻领域 渗透领域 应急响应 python VulnHub靶场复现 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末
  • 2024年度 ROTS - 实时操作系统 Top 15

    RTOS 实时操作系统 这里说的 RTOS 并非新星球大战电影中的机器人 而是物联网设备 航空系统 空中交通管制等背后的无声协调者 就在地球上 RTOS 或称实时操作系统 设计它们是为了更好的管理资源 以及为一些对时间点有精确要求的应用运行
  • JAVA电商平台 免 费 搭 建 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城

    在数字化时代 电商行业正经历着前所未有的变革 鸿鹄云商的saas云平台以其独特的架构和先进的理念 为电商行业带来了全新的商业模式和营销策略 该平台涉及多个平台端 包括平台管理 商家端 买家平台 微服务平台等 涵盖了pc端 手机端 h5 公众
  • Python进程、线程、协程:多任务并发编程指南

    概要 在当今计算机时代 为了提高程序的性能和响应速度 多任务并发编程成为了一种必不可少的技术手段 而Python作为一门高级编程语言 提供了多种多任务并发编程的方式 包括进程 线程和协程 本文将详细介绍这三种方式的使用教程 并给出代码示例
  • 宏集PC Runtime软件助推食品行业生产线数字化革新

    一 前言 近年来 中国食品行业发展迅速且灵活多变 在当前经济下行的情形下 食品行业正面临着日益激烈的竞争 导致企业利润下降 为了保持企业市场竞争力 国内某top10食品企业采用宏集SCADA解决方案 PC Runtime软件对其产线进行数字
  • 2023年终盘点:Apache SeaTunnel社区年度成就与展望

    随着2023年即将画上圆满的句号 是时候回顾过去一年Apache SeaTunnel社区的辉煌成就和宝贵经验 在这充满挑战和机遇的一年里 我们的社区不断壮大 技术不断进步 成就斐然 展望2024年 展望来年 Apache SeaTunnel
  • 软件测试/测试开发全日制培训班|测试管理圆桌讨论会精彩时刻回顾(上)

    很高兴大家来参加测试管理圆桌讨论会 本次我们邀请了4位嘉宾 他们的工作履历几乎涵盖了目前互联网行业的头部公司 嘉宾介绍 Angelia 资深的项目经理 多次搭建研发团队 目前在外企做 PMO成员 强哥 曾在阿里担任测试负责人 负责过很多大型
  • 这次我们的代码覆盖工具带来了哪些新功能?

    作者 Jakub Chocholowicz Principal Software Engineer NET 排版 Alan Wang 我们带来了一个让开发者非常兴奋的消息 我们更新了代码覆盖工具 Microsoft CodeCoverage