1.       C/C++语言开发的首选利器- C++Test

以前在windows平台下的开发,使用的框架主要是MFC,以及console工程(基于win32SDK),属于纯C/C++开发的范畴。

因此,使用的单元测试工具,主要有C++Test和CppUnit两种,其中又以前者为主。因为具有直接导入VC工程,以及自动生成测试集合、用例的优点,还是相当好用的。不过这个软件也有缺点,就是修改测试用例时,基本上不能引入被测代码中的符号。举个例子,除了测试用例中已经生成的全局变量赋值语句,用户如果想设定其他全局变量,或者定义一些指针类型-为了访问某些全局数组空间,最终会发现,该测试用例无法运行。

显然,这一缺点,可以通过CppUnit中的手工编写测试用例来解决。当然,缺点就是没法自动生成测试用例了;你得一个一个的自己编写。

除过上面讲到的缺点,C++Test是一个非常优秀的软件,对于纯C语言开发者,是非常便利和强大的。特别是对于嵌入式开发者,使用该软件进行单元测试,能够极大地提高软件质量,避免target调试费时费力的缺点。

当然,前提条件是,将嵌入式系统的代码,成功移植到Visual C++环境(使用VC编译器替代原来的gcc或者arm定制编译器)。需要注意的是,只要求编译通过,不要求连接通过-链接需要的函数可以由C++Test自动生成。

在移植过程中,会遇到以下一些问题,这里给出笔者的简单解决方法。

1)   汇编语言部分 – 如果能看懂,可以尝试转换为C代码,否则屏蔽。

2)   特殊的函数标记或编译器伪指令(pragma系统),直接屏蔽。

3)   不要忘记把原编译器中的预定义宏迁移到VC工程中。最常见的是,一些标识CPU选项和debug等级的预定义宏。

笔者就曾经将一个code warrior开发环境下的arm工程,迁移到VC2005中,最终使用C++Test完成了单元测试。有图为证。

笔者的这个工程,大约包含几百个源文件。如果使用手工生成测试用例的方法,需要大量的测试人员和人力才能完成;并且还难于管理测试用例。使用C++Test之后,减轻了不少工作量。

其实,该软件还有一个优点-提供测试覆盖率统计和图示。相信这一点,也是单元测试的最终目标-百分之百覆盖,所非常有利的工具了。

2.       .Net环境单元测试的首选利器- Nunit

目前windows平台下的最流行开发环境,非属.Net开发环境莫属。基于该环境,微软提供了ManagedC++/VB/C#等开发语言,吸引了不少粉丝。当然,微软的东西,都是集成在Visual Studio中的,连带着也产生了单元测试工具-不过只在team版本中才有。

不过经过比较,笔者还是推荐Nunit。首先这个软件是免费的,其次很强大,应用起来也很方便。只要仿照自带的例子,编写相应的测试类就行了-当然,必须引入“NUnit.Framework”包。

下图是个简单的例子,取材于该软件的samples.

完成工程的解释和链接后,可以通过Nunit,定位到该工程生成的“dll”文件进行测试。

3.       Java环境单元测试的终极利器- Junit

从事Android开发之后,因为eclipse的缘故,选择了Junit作为测试工具。其实,parasoft公司的J++Test也是不错的选择;不过Android开发包内置支持Junit,显然更加值得推荐。

下面引用一个android开发包中的例子,进行简单的说明。这个例子,读者可以在“android\android-sdk-windows\samples\android-8\ApiDemos\tests”中找到。这个例子代表的工程,就是一个用于android平台应用程序(JAVA代码)单元测试的Junit测试工程。

与上一节中提到的测试源文件编写类似,需要引入“android.test.ActivityInstrumentationTestCase2”包,才能引入测试驱动并且成功连接到测试驱动入口。当然,可供使用的测试用例原型有很多,不止这一个类型;比较常用的还有“android.test.AndroidTestCase”。

实际测试时,可以选定任意的android终端进行。在这个实例中,笔者选定的是android模拟器。测试完成后,eclipse的Junit面板,会显示测试用例的执行结果;可惜的是,仍然没有覆盖率统计。

4.       其他常用语言的单元测试工具

除了上文提到的几种开发语言和平台,在日常编程活动中,可能会遇到的还有perl,tcl,python等OO语言。

一般来说,这些语言有着庞大的第三方package支持。因此,一般来说,类似于android平台内置支持Junit框架,这些语言也有相应的支持。举个例子,perl支持包列表,自从perl语言创世以来,perl testing这个模块就支持全面的测试。感兴趣的读者,可以阅读一下这方面的书籍。

常见单元测试工具介绍相关推荐

  1. 嵌入式软件--单元测试工具介绍

    覆盖率专家winAMS获得机能安全标准ISO26262/IEC61508工具认证,是日本工业制造领域普遍使用的针对C/C++的单元/集成测试工具.winAMS是将通过交叉编译生成的原始代码作为评价代码 ...

  2. 常见数据采集工具介绍

    数据采集是指从各种数据源中收集数据并将其存储在一个地方,以便进行分析和处理.数据采集工具是帮助我们自动化数据采集过程的软件或服务.在本文中,我们将介绍一些常见的数据采集工具. Web Scraper ...

  3. 软件工程中常见的工具介绍

    软件工程工具(需求Doors/ 配置 CC/ 变更 CQ/ 测试管理工具 TD 等) 项目计划和跟踪可以用Microsoft Office Project : UML 建模工具最著名的就是 Ratio ...

  4. 机器学习之常见学习工具介绍

    "无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程." 概述 ...

  5. 自动化测试(一)基本介绍——测试框架的分类 单元测试工具 E2E测试工具

    自动化测试(一)基本介绍--测试框架的分类 & 单元测试工具 & E2E测试工具 5-3 自动化测试 课程介绍 在前端界,浏览器兼容性是让工程师们头疼的问题,对于经验丰富的人来说,很清 ...

  6. 前端单元测试及其工具介绍(一)

    文章目录 前端单元测试及其工具介绍 为什么需要单元测试 单元测试的一些要素 工具 mocha 介绍 API 钩子函数 chai 介绍 使用 mochawesome nyc/Istanbul 介绍 Si ...

  7. SAP UI5 初学者教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  8. SAP UI5 应用开发教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍

    Jerry 在之前做 SAP UI5 标准开发和现在使用 Angular 开发 SAP Spartacus 应用时,我们团队的开发规范就是,每增添一个新的前端 feature,必须要用一个新增的单元测 ...

  9. 常见的自动化运维工具介绍及特点、安装ansible

    常见的自动化运维工具介绍及特点.安装ansible 一.什么是自动化运维? 简单来说,自动化运维就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人为参与. 将周期性.重复 ...

最新文章

  1. 表情的机器自动识别(有图有真相)
  2. android通知栏打开actvity,Android实现点击通知栏后,先启动应用再打开目标Activity...
  3. C#值类型与引用类型
  4. PaddlePaddle训练营——公开课——AI核心技术掌握——第1章迈入现代人工智能的大门——深度学习简介
  5. Dump与Win Program Crash
  6. Sum of Paths CodeForces - 1467D
  7. docker安装pocbox(漏洞测试验证辅助平台)
  8. fragment怎么获得上下文环境_Flask 源码剖析 (三):Flask 的上下文机制 (上)
  9. 什么是嵌入式工程师,发展前景如何
  10. jetbot 无法通过浏览器访问_linux中启动tomcat后浏览器无法访问的解决方法
  11. 学校家教服务管理系统
  12. 好长的一篇Android与iPhone的对比
  13. 全国计算机二级---公共基础部分知识点(自用总结)
  14. 【Java基础】Java综合练习
  15. 春季舞蹈比赛1 c++
  16. mysql中的binlog用法
  17. YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
  18. 给apple老师建议
  19. 网易2020校招笔试- 大数据开发工程师(正式批)
  20. 基于深度学习的图像语义编辑

热门文章

  1. Eclipse中安装Ext插件(Spket IDE)
  2. 搭建Telnet服务器
  3. Linux学习134 Unit 8
  4. JSP+Javabean+Servlet实现用户注册
  5. 电脑上面玩Android 游戏(.apk文件)
  6. Jconsole查看Weblogic自定义MBean
  7. [Pku 2774] 字符串(六) {后缀数组的构造}
  8. 有了二叉查找树、平衡树为啥还需要红黑树?
  9. python面试题总结(2)--编码规范
  10. Systemd 入门教程之实战篇