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

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(使用前将#替换为@)

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

  • 如何使用 WebResponse 下载 .wmv 文件

    我使用以下代码通过 WebResponse 获取 wmv 文件 我正在使用一个线程来调用这个函数 static void GetPage object data Cast the object to a ThreadInfo ThreadI
  • 点击浏览器后退按钮时如何刷新 ASP .NET MVC 页面

    我刚刚发现 当我单击任何 ASP NET MVC 页面上的浏览器后退按钮时 没有任何反应 并且页面不会更新 并且只有当您单击 F5 时才会更新 主要问题是我对页面的 DOM 进行了一些更改 即添加表格行 选择单选按钮等 当我通过点击浏览器后
  • 忽略挂起的更改中的某些文件

    这是我的问题 我已经更改了解决方案中的某些文件 假设是 Web config 并且永远不想签入 因为这些更改仅涉及我的计算机 有没有办法在 TFS 中忽略某个文件中的更改并将其从挂起的更改窗口中删除 当然 我可以在每次签入时跳过这个文件 但
  • 在 .Net 应用程序中使用 Active Directory Web 服务

    我正在尝试构建一个 Net 应用程序来询问 Active Directory 编辑 我需要使用 Web 服务来执行此操作 因为我将使用需要使用 Web 服务的第三方工作流工具从 Sharepoint 工作流与 AD 进行通信 根据我的研究
  • C# 转换为小数

    如果有的话 有什么区别 decimal d decimal myDouble decimal d new decimal myDouble decimal d Convert ToDecimal myDouble 没有区别 如果你看一下源码
  • C# 中 DLL 和命名空间的关系

    这里有一个高级问题 今天我花了很多时间自学基本的高级概念 例如 API 静态和动态库 DLL 以及 C 中的编组 获得所有这些知识让我想到了一个看起来非常基本的问题 并且可能表明我对这些概念的理解存在漏洞 我知道的 DLL 可能包含类 这些
  • C# 数据表来保存表格(无限嵌套)

    我相对较新C 但来自C C 背景 我需要一个类似于的数据类型 类 DataTable 但允许存储的列保存 简单 类型 int float boolean string 以及相同类型的数据 以便一个列可以保存另一个表 该表也具有存储表等的列
  • 在C#中的某个单词之后/之前过滤字符串中的值

    我有很长的字符串 它们是 IMAP 请求的响应 我想从中提取一些值 它通常的格式类似于 x someword 或 someword x 如何获取某个单词 已知 的x 它可以超过一位数字 响应的每一 行 如下所示 x someword r n
  • 我可以将 SimpleInjectors 诊断结果写入日志文件吗?

    在调用中使用简单注入器container Verify 在我的配置结束时 并在调试器中获取诊断信息 如中所述文档 http simpleinjector codeplex com wikipage title Diagnostics 我想将
  • 如何检查 FTP 目录是否存在

    寻找通过 FTP 检查给定目录的最佳方法 目前我有以下代码 private bool FtpDirectoryExists string directory string username string password try var r
  • C# 中的空“if”语句是否会导致错误或警告?

    让我从一个现实生活中的例子开始 顾客 Alex 刚刚注意到 RemovalProcessor 第 138 行有一些奇怪的东西 if Session Handler ExecutePrefetchTasks null Session Exec
  • 使 .net web api 队列请求以“单线程”方式运行

    我们有一个 c net Web API 服务调用代码 该代码无法一次处理多个数据库请求 该系统适用于需求相对较小的账单在线支付 我们无法控制代码来进行可以解决问题的更改 另一个使用相同代码的小组使用 WCF API 和服务配置将并发请求限制
  • 模拟 WCF 客户端代理的最佳方法

    有没有办法使用 Rhino 模拟框架来模拟 WCF 客户端代理 以便我可以访问 Channel 属性 我正在尝试对 Proxy Close 方法进行单元测试 但由于代理是使用抽象基类构造的ClientBase
  • Lazy 实现和 .NET 泛型

    我正在寻找进行延迟初始化的方法并发现Lazy
  • 如何在 wpf 应用程序的代码隐藏中创建集合视图源

    我有以下代码 public partial class MainWindow Window public MainWindow InitializeComponent var entities new DemoEntities var de
  • 有没有办法在不重新编译的情况下覆盖 .NET Windows 服务名称?

    我有一个 Windows 服务可执行文件 我知道它是用 NET 编写的 我需要将其安装在不同的服务名称下以避免冲突 安装无论如何都不提供指定服务名称 如果我只能访问二进制文件 当我使用 installutil 安装它时是否可以覆盖服务名称
  • 如何转义 HTML 字符?在.NET中-->“

    如何在 NET 中转义 HTML 字符 我正在从 json 字符串中获取 html 并在标题中得到 amp quot more text 看起来我需要做两次才能得到 amp quot 成为 quot 那么它就是一个 如何转义 NET 中的所
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编

随机推荐

  • 【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