写点什么

谁来检查我们的单元测试?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:061718
用户头像

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

关注

评论

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

云上托举智造梦,天翼云为机械工业注入澎湃数字活力!

天翼云开发者社区

云计算 工业数字化

吴炳锡:AI 时代下的湖仓一体化平台建设的思考

Databend

10分钟无痛部署!字节Coze开源版喂饭教程

测吧(北京)科技有限公司

工业数字化 信息化经验总结(6)

万里无云万里天

数字化转型 信息化 工业 工厂运维

flink-cdc之mysql到es

天翼云开发者社区

数据库

办公常用的多屏协同工具有哪些?5个国内外主流应用盘点

职场工具箱

效率工具 在线白板 办公软件 在线协作 多屏协同

流程大咖说 |AI 重构 “中国制造”:如何让汽车行业效率狂飙 40%?

凡得流程PROCESS X

人工智能 制造业 流程挖掘 央国企数智化转型 传统行业

数字先锋 | 数字之光,在“水”一方,天翼云加速攀枝花水务集团国产化发展!

天翼云开发者社区

云计算 天翼云

合理选择任务调度的路由策略,可以帮助降本 50%

阿里巴巴云原生

阿里云 云原生 任务调度

Dify知识库调优秘籍:6步精准改造,让AI回答从此可靠无误

测吧(北京)科技有限公司

通过ETL工具,同步SQLserver数据至starrocks数据库

谷云科技RestCloud

数据传输 数据同步 ETL SqlServer StarRocks

项目启动会如何开?这些项目管理工具和模板让你事半功倍

职场工具箱

项目管理 可视化 在线白板 在线协作 效率办公

当流程挖掘遇上 AI 智能体:凡得科技如何让企业流程 “自己跑起来”?

凡得流程PROCESS X

流程挖掘 数字化案例 央国企数智化转型 央国企数字化产业赋能图谱 数字化转型‘’

从体验到系统工程丨上手评测国内首款 AI 电商 App

阿里巴巴云原生

阿里云 云原生

爆单不慌!RestCloud iPaaS让618双11财务对账丝滑到飞起

谷云科技RestCloud

数据同步 ETL ERP ipaas 财务系统

“双碳”目标下的能源业转型指南!《能源业可观测性落地全景报告(2025)》免费下载!

博睿数据

从流程洞察到价值释放,AI赋能运营商全场景智能升级

凡得流程PROCESS X

数字化转型 移动 电信 运营商 联通

KubeBlocks For MySQL 云原生设计分享

小猿姐

MySQL 数据库 云原生 k8s

大数据产品线生产操作安全规约

天翼云开发者社区

大数据 安全

Playwright基础入门篇 | 交互操作深度解析

测试人

软通动力2025半年报:营收稳步攀升,全栈智能点亮发展新局

财见

分享mp.jobleap4u.com,一个有温度的求职知识库

Y11

求职 找工作 招聘 AI招聘

5个技巧让文心快码成为你的后端开发搭子

百度Geek说

详解多智能体架构:以 Open Deep Research 项目为例

火山引擎开发者社区

字节跳动 火山引擎 多智能体

百度智能云,造出了AI时代的擎天柱

脑极体

AI

新增Zulu-CLI、企业版对话支持自定义模型、一键设置自动执行、复用相同终端,8月新能力速览!

Comate编码助手

自定义模型 AI辅助编程 AI 编程 文心快码 文心快码Zulu

如何利用密码策略解决AD域弱密码问题?

运维有小邓

AI+软开-软件开发企业的数字化转型

lsycang

工业管理 团队建设经验总结(3)

万里无云万里天

项目管理 工业 工厂运维

从“流程”到“资产”:开启企业数字化运营的下一个黄金点

凡得流程PROCESS X

软件 信创 流程资产 #流程挖掘

增强式 BI:让数据会推理,让决策更简单

数据集成与治理

FineBI

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