写点什么

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

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

关注

评论

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

YashanDB数据类型

YashanDB

数据库 yashandb

深度剖析:AI Agent 与 RPA 融合的底层技术逻辑

Techinsight

RPA RPA Agent

Web3项目的上线流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

软件产品开发中常见的10个问题及处理方法

伤感汤姆布利柏

SonarQube Server 2025 Release 2 发布 - 代码质量、安全与静态分析工具

sysin

SonarQube

实用干货!快速掌握 RPA 的实战学习方法

Techinsight

RPA RPA评测 RPAxAI RPA Agent

2025 用户力荐的国内 RPA 工具,哪款才是你的最佳之选?

Techinsight

RPA RPA评测 RPAxAI RPA Agent

数字先锋 | 打造专属AI大脑,天翼云助力重庆理工大学开启智慧校园新篇!

天翼云开发者社区

人工智能 智慧校园

软件架构,关于问题起源和应对

伤感汤姆布利柏

NocoBase 本周更新汇总:支持用户角色并集

NocoBase

开源 低代码 零代码 用户 版本更新

深度剖析 StarRocks 读取 ORC 加密文件背后的技术

vivo互联网技术

数据库 大数据 加解密 StarRocks orc

解锁RPA数据采集隐藏技能,这些优势你get了吗?

Techinsight

RPA RPA评测 RPAxAI RPA Agent

豫中南数字产融平台上线87日交易额破亿,重塑产业新生态

科技热闻

网易邮箱DolphinScheduler迁移实战:从部署到优化,10倍效率提升的内部经验

白鲸开源

开源 网易 Apache DolphinScheduler 任务调度 网易邮箱

观测云产品更新 | 场景、日志、可用性监测等优化

观测云

产品迭代

Apache Calcite 在 MyCat2 中的实践探究

端小强

#Calcite

YashanDB数值型数据

YashanDB

数据库 yashandb

YashanDB NULL

YashanDB

数据库 yashandb

故障定位系列-1-接口级故障

乒乓狂魔

故障定位 根因分析 AIOPS 可观测

企业可以自己做等保测评吗?

黑龙江陆陆信息测评部

新职人必看:有哪些小众却超神的提效工具?

Techinsight

RPA XMind RPA Agent

Web3项目的开发框架及特点

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

招商引资管理系统(源码+文档+讲解+演示)

深圳亥时科技

项目过程中会出现哪些问题?

秃头小帅oi

TDengine 发布时序数据分析 AI 智能体 TDgpt,核心代码开源

TDengine

数据库 tdengine 时序数据库

秘籍流出!一站式数据管理解决方案

引迈信息

Web3项目开发流程

北京木奇移动技术有限公司

软件外包公司 web3开发 区块链开发公司

怎么在线快速制作PPT?5个PPT生成工具盘点!

职场工具箱

职场 PPT 办公软件 AIGC AI生成PPT

户外LED租赁显示屏闲置时的存放秘籍

Dylan

商业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

养老机构平台运营与开发:数字化时代的智慧养老解决方案

网站,小程序,APP开发定制

爱橙科技基于 MaxCompute 智能物化视图最佳实践

阿里云大数据AI技术

大数据 阿里云 SaaS MaxCompute 物化视图

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