2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

谁来检查我们的单元测试?NCover2!

  • 2007-10-10
  • 本文字数:1096 字

    阅读完需:约 4 分钟

随着 NUnit 和 Visual Studio.NET 2005 的推出,对.NET 代码作单元测试似乎越来越容易了,而且更加自动化。但您是否考虑过这些单元测试是否真正“有效”呢?还是仅仅自我安慰的“额外工作量”呢?NCover 起码可以帮忙做做检查。以前 NCover 是个开源的框架, 最近它已经被商品化了。

Gnoso 把 NCover 升级成为 2.0 版,并把它商品化了。虽然,之前通过开源方式可以获得 NCover,但可能因为它定位的领域太吸引人了,以至于它的升级速度和集成性方面反倒总是差强人意。NCover 是一个用来检查.NET 单元测试代码与实际代码覆盖分析的工具,它在执行单元测试的过程中对执行情况进行监测,然后会记录下单元测试都调用过哪些代码,不过最重要的是它记录下哪些代码实际没有被单元测试掉用到。你也许觉得“我严格按照 Write a little,Test a little”的步骤在编写单元测试,就是漏掉也很显眼,因为我写了 [todo] 了,但事实情况并非如此:

  • 面向对象一个特点就是多态,虚方法、抽象方法、重载方法、委托这些都很可能成为您察看不到的“死角”;
  • 1000 行的代码也许做这么一次覆盖检查不麻烦,不过如果您负责一个 1,000, 000 行代码的项目,想看看大家是不是把该做的单元测试都作了,恐怕要写要记录的东西不是 3、4 个人可以做得来的;
  • 这些都不算最坏的情况,软件界有一个不变的规律就是变化本身,如果增加或者修改掉了一块功能,单凭人工在代码中翻腾一次这个经历就太痛苦了,不过这还没有短痛,都是长痛,别忘了唯一不变的就是变化。

虽然不一定特别权威,但 NCover 起码从覆盖角度告诉我们“你的单元测试做的是否够好”。很多人更喜欢它是因为他无须象其他类似工具在代码上增加“痕迹”,它可以直接在生产代码上进行检查,而且可以对 Web Service 和.NET Windows Service 这些后台服务类代码进行检查。此次 2.0 产品化版本中,主要对产品得易用性作了较大改善,以前游离在外面的 NCoverExplorer 被集成到 NConver 里面,这样检查报告看起来更加人性化,而且还支持同时看多个项目(Project),毕竟.NET 项目开发一般都是 Solution 层次的,一遍遍打开每个项目的报告确实惹人烦。企业版中还有一个特别有用的特性,就是可以把执行路径画出来,并记录下每个步骤的执行时间,相信您以前总碰到过类似的困扰——“到底怎么了,为什么跑得这么慢啊?”。NCover 可以用图形化的方式展现这个执行过程。生产代码检查 +Assembly 检查 + 可视化执行路径,相信 NCover 会成为性能调整和代码优化的得力工具。

商品化之后,试用 NCover 感觉比以前舒服多了(不过要收 100$+ 的使用许可了)。相信对于开发团队,尤其是“代码就是设计”的敏捷团队而言,NCover 也可以作为一个不错的把关工具。

2007-10-10 21:061701
用户头像

发布了 61 篇内容, 共 14.5 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Elasticsearch向量检索的演进与变革:从基础到应用

汀丶人工智能

自然语言处理 Elastic Search 语义搜索系统 向量搜索

MySQL Command Line Client登录 及系统设置

小齐写代码

TiDB 7.x 源码编译之 TiDB Server 篇,及新特性解析

TiDB 社区干货传送门

版本测评 新版本/特性发布 7.x 实践

收获98.23%候选人的好评,ATL新能源做对了什么?

用友BIP

智能招聘

2023 年 API 排行榜热门榜单揭晓

Apifox

程序员 前端 接口 API API 协议

一周完成“药管家”元服务开发,上线单月用户达千万

最新动态

把AI刻进矿山生产DNA | 用友BIP助力智慧矿山精益管理提速

用友BIP

智能制造

SMT组装工艺流程的应用场景

华秋电子

SMT

软件测试|火焰杯”软件测试高校就业选拔赛获奖名单揭晓,我院两名学子上榜,奖金2万元!

霍格沃兹测试开发学社

邯郸学院软件学院软件工程专业教师参加“火焰杯”软件测试颁奖

测试人

软件测试

TiKV Fast Tune 介绍及手册,快速定位 TiDB/TiKV 性能抖动或退化

TiDB 社区干货传送门

TiDB 企业版全新升级,平凯数据库核心特性全解读

TiDB 社区干货传送门

加速新型工业化“智造”创新,用友数智驱动新质生产力

用友BIP

智能制造

优化模型之标注错误

矩视智能

深度学习 机器视觉

一站式轻量化部署服务器集群监控方案

lklmyy

云计算 部署 测试开发 #云原生

小间距LED显示屏的技术优势有哪些?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

手机端侧文字识别:挑战与解决方案

合合技术团队

人工智能 技术 手机 识别

TiDB 社区第三届 1024 程序员心愿节|你的心愿,我来实现,人均带着一个礼物的时刻到啦!

TiDB 社区干货传送门

多模态GPT-V出世!36种场景分析ChatGPT Vision能力,LMM将全面替代大语言模型? | 京东云技术团队

京东科技开发者

人工智能 LLM模型 企业号10月PK榜 GPT-V

页面查询多项数据组合的线程池设计 | 京东云技术团队

京东科技开发者

线程池 分页查询 企业号10月PK榜 数据组合

互动直播双11大促开启!!!快来! | 京东云技术团队

京东科技开发者

互动直播 数字人 企业号10月PK榜 AI直播

AI干货大FUN送!程序员节来AI Show“集市”行乐

飞桨PaddlePaddle

AI 程序员节

第2期 | GPTSecurity周报

云起无垠

软件测试|计算机系本科生获“火焰杯”软件测试高校就业选拔赛一等奖

霍格沃兹测试开发学社

是时候了!MySQL 5.7 的下一站,不如试试 TiDB?

TiDB 社区干货传送门

把您的 PCB 艺术品带来 KiCon 吧:SAO Hat 作品招募中

华秋电子

kicad

京东小程序平台助力快送实现跨端 | 京东云技术团队

京东科技开发者

小程序 ide 跨端 企业号10月PK榜

谁来检查我们的单元测试?NCover2!_.NET_王翔_InfoQ精选文章