HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

小红书“致歉滤镜景点”:种草社区的尺度在哪?

石头IT视角

现成数字货币交易所源码系统开发

百度智能云大数据全景架构图如何赋能企业数字化

百度开发者中心

大数据 案例分享 行业创新

Golang fasthttp实践

FunTester

golang Fasthttp 接口测试 测试框架 FunTester

研究表明到2025年多接入边缘云市场规模将稳步增长

云计算运维

k8s集群安装经历

追风少年

k8s kubenetes

架构实战营-模块1-作业

无名

架构实战营

飞桨联邦学习框架PaddleFL新升级,实现纯两方安全计算协议

百度开发者中心

最佳实践 百度飞桨 版本升级

模块1

侠客行

架构实战营 「架构实战营」

百度人脸采集SDK通过CFCA权威安全测评

百度大脑

人工智能 人脸

存储大师班 | 浅谈数据保护之快照与备份

QingStor分布式存储

分布式存储 快照 备份

分布式文件系统FastDFS实战

飞鸟

fastdfs 分布式文件系统

一看就懂|焱融 SaaS 数据服务平台上手指南

焱融科技

云计算 技术 分布式 高性能 文件存储

《世界质量报告》重磅发布,人工智能与机器学习成软件质量保证测试焦点

21 张图 | 带你领略集合的 线程不安全

Java 架构 面试 线程 后端

人生成长密码:高效能人士的7个习惯

dinstone

优酷鸿蒙开发实践|优酷 Android 与HarmonyOS Hap 混合打包

阿里巴巴终端技术

android 鸿蒙 客户端开发 HarmonyOS 优酷

数字货币交易所软件系统开发简介(搭建)

网易云信的音频共享技术 | 体验共享专题

网易云信

音频技术

架构训练营模块一作业

Beyond Ryan

架构实战营

FastDFS环境搭建

飞鸟

fastdfs

三级等保是不是icp?两者是一样吗?

行云管家

网络安全 等级保护 等保三级 三级等保

数字货币交易所系统软件开发介绍(源码)

IP地址溯源 从源头遏制计算机恶意程序感染

郑州埃文科技

网络安全 ipv6 IP地址 木马病毒

数字货币交易所系统软件开发介绍(案例)

字节半天*3面/5天拿offer,全凭自身硬实力和这份Java面试笔记

Java 编程 程序员 架构 面试

数字货币交易所系统APP开发源码搭建

Cloud Studio 邀您互动,好礼送不停 | CIF 活动邀请

CODING DevOps

自动化部署 Cloud Studio 开发标准化 可视化编辑 多人协同

第 20 章 -《Linux 一学就会》- 条件测试语句和if流程控制语句的使用

学神来啦

Linux linux运维 linux云计算 linux一学就会

架构实战营-模块一作业

随风King

「架构实战营」

数字货币交易所系统APP开发(源码搭建)

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