代码覆盖率计算利器:DotCover的使用(含Manual Test)-阿里云开发者社区

开发者社区> luminji> 正文

代码覆盖率计算利器:DotCover的使用(含Manual Test)

简介: 因为某项目的白盒单元测试做的不是很好,而QA又提出了非常高的代码覆盖率移行标准,不得以开始调研能覆盖手工测试(Mannual Test)的覆盖率工具,加上一些最基础的条件,该工具必须满足如下三点: 1:能计算白盒单元测试覆盖率; 2:能计算黑盒手工测试覆盖率; 3:支持MSTest框架; 第一个自然想到的就是NCover,没错,它肯定满足这三个条件,它有一个满足21天使用的Trial版本可以用,但是,商业版本的价格也是惊人的: NCover Code Central$ 2,298NCover Desktop$ 658NCover Collector$ 448 很多刀刀。
+关注继续查看

因为某项目的白盒单元测试做的不是很好,而QA又提出了非常高的代码覆盖率移行标准,不得以开始调研能覆盖手工测试(Mannual Test)的覆盖率工具,加上一些最基础的条件,该工具必须满足如下三点:

1:能计算白盒单元测试覆盖率;

2:能计算黑盒手工测试覆盖率;

3:支持MSTest框架;

第一个自然想到的就是NCover,没错,它肯定满足这三个条件,它有一个满足21天使用的Trial版本可以用,但是,商业版本的价格也是惊人的:

NCover Code Central$ 2,298
NCover Desktop$ 658
NCover Collector$ 448

很多刀刀。相比而言,生产ResharperJetbrainsDotCover,价格就要便宜很多,Personal License只要99刀,即便商业授权也只要199刀。当然,我现在还发现一个更龌蹉的方法,就是使用Classroom版本,然后到期了改时间就OKDotCover现在是鼓励大家合理使用。

闲话少说,那么到底它支持不支持如上3个标准(实际上,最重要的是:是否良好支持手工测试覆盖率计算)。下载Classroom liscence,安装之(目前已支持VS2012)。DotCover是基于VS插件的形式存在的,安装完毕,我们会在VS的工具栏中发现DotCover的标识,如下,比如,启动之“Cover Application”:

就会出现如下界面:

可以看到,它支持的应用种类还是比较多的。如果是启动普通的应用程序,如Winform,那么操作起来还是比较简单的,点击“Standalone Application”后,就会出现如下界面:

按照提示,输入后,OK-runDotCover就会为我们启动应用程序,当然,随着启动应用程序,DotCover的主模块也被启动起来,如下:

然后随着我们使用该应用程序(也就是测试),DotCover会跟踪代码执行的路径。测试完毕,我们“Get Snapshot”,最终DotCover会为我们生成如下的报告:

覆盖率结果清清楚楚的列在最后一列。

测试网站,要稍稍复杂一点,因为我们要将DotCover部署在WEB服务器上。由于它是以VS插件的形式存在的,首先WEB服务器上就得有VS(注意,Express版本可是不行滴)。启动DotCover还是一样的,但是最主要的,我们在选择Application Type的时候,要选择“IIS Application”,然后在弹出的界面里,URL可以空着,Run webbrowser也可以不勾选(因为我们又不是要在服务器上测试网站),最最重要的,是在“Edit Filter”的弹出界面中把网站的Bin路径配置进去。注意,如果我们的站点有多个虚拟路径的话,则需要把全部虚拟路径的Bin目录配置进去(以分号隔开)(下面的那些checkbox都可以不再勾选)。配置完毕,点“Run”。

然后,我们回到某个客户端上,启动浏览器,输入网站地址,当第一个人启动网站后,我们就会发现,在服务器的这个界面:

中的Process栏目,会变成w3wp这个进程,如果这个进程出现了,那么说明DotCover开始工作了。

最后,有几点需要进行说明:

1:每次测试完毕,应该将Snapshot保存为独立的文件,最终每次测试的结果我们可以使用DotCover的命令行工具进行合并,示例如下:

        DotCover merge /source=d:\1.dcvr;d:\2.dcvr /output=d:\end.dcvr /tempdir=d:\

2:其次,当前的Release版本为2.1.xxx,恭喜你,安装在Win7上毫无问题,但是,当你安装在XP或者Window Server2003版本上的时候,会发现:

        “Can't initialize profiler. PDB server wasn't started."

这个时候,我们就要去JetBrainsDailybuider版本的地址下载最新的安装包了,在这里:http://confluence.jetbrains.net/display/DCVR/dotCover+Early+Access+ProgramJetBrains号称2.2版本已经修复了该问题。是的,它确实已经修复了,但是还有些别的小问题,如果你不幸遇到了"failed to cocreate profiler",一定记得来问我是如何龌蹉滴解决了该问题的。

当然,所有这一些,我相信2.2Release版本出来后一定会解决的,毕竟,牛公司就得有个牛公司的风范。

 

总之,DotCover还是一款非常不错的覆盖率计算的工具软件,解决了开发、测试、QA三方面的问题(PS,白盒的覆盖率就不介绍了,毕竟那还是最基本的功能)。

 

 

Creative Commons License本文基于Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
代码覆盖率计算利器:DotCover的使用(含Manual Test)
因为某项目的白盒单元测试做的不是很好,而QA又提出了非常高的代码覆盖率移行标准,不得以开始调研能覆盖手工测试(Mannual Test)的覆盖率工具,加上一些最基础的条件,该工具必须满足如下三点: 1:能计算白盒单元测试覆盖率; 2:能计算黑盒手工测试覆盖率; 3:支持MSTest框架; 第一个自然想到的就是NCover,没错,它肯定满足这三个条件,它有一个满足21天使用的Trial版本可以用,但是,商业版本的价格也是惊人的: NCover Code Central$ 2,298NCover Desktop$ 658NCover Collector$ 448 很多刀刀。
909 0
postman的基础使用
搜索进入postman官网下载客户端,或者安装谷歌浏览器postman扩展插件。
511 0
java面试题:写代码使得分别出现StackOverflowError和OutOfMemoryError
今天做了个笔试,这是其中的一道题目:写代码使得分别出现StackOverflowError和OutOfMemoryError。 1.StackOverflowError   堆栈溢出错误一般是递归调用嘛。
717 0
Python模块Typing.overload的使用
Python模块Typing.overload的使用
17 0
【RMAN】使用RMAN duplicate复制同机数据库遇到的问题
1 参数文件中的 db_name为修改 oracle@yangDB1:/home/oracle>export ORACLE_SID=orcl oracle@yangDB1:/home/oracle>rman target / Recovery Manager: Release 10.
479 0
PostgreSQL · 特性分析 · 统计信息计算方法
一条SQL在PG中的执行过程是: ----> SQL输入 ----> 解析SQL,获取解析后的语法树 ----> 分析、重写语法树,获取查询树 ----> 根据重写、分析后的查询树计算各路径代价,从而选择一条成本最优的执行树 ----> 根据执行树进行执行 ----> 获取结果并返回
1577 0
RDS&POLARDB归档到X-Pack Spark计算最佳实践
业务背景 对于RDS&POLARDB FOR MYSQL 有些用户场景会遇到,当一张的数据达到几千万时,你查询一次所花的时间会变多。这时候会采取水平分表的策略,水平拆分是将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同。
1623 0
Spring Boot项目利用MyBatis Generator进行数据层代码自动生成
概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器。它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ORM层代码,典型地包括我们日常需要手写的 POJO、mapper xml 以及 mapper 接口等。
1839 0
+关注
luminji
微软最有价值技术专家(MVP),著有《编写高质量代码:改善C#程序的157个建议》,有着十多年的软件从业资历。
291
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载