JUnit及其相关的单元测试技术(3)

发表于:2015-09-21来源:uml.org.cn作者:不详点击数: 标签:junit
上面我们介绍了如何用junit和HttpUnit编写单元测试用例,那如何确定我们编写的单元测试用例能不能完整地测试我们的代码呢?这就需要看看我们的单元测试

  上面我们介绍了如何用junit和HttpUnit编写单元测试用例,那如何确定我们编写的单元测试用例能不能完整地测试我们的代码呢?这就需要看看我们的单元测试用例对我们代码的覆盖测试率了。覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。

  3.2 如何使用EclEmma进行覆盖测试

  EclEmm是一个帮助开发人员考察测试覆盖率的优秀的 Eclipse 开源插件, EclEmma为用户提供图形界面以及对集成开发环境的支持,安装 EclEmma 插件的过程和大部分 Eclipse 插件相同,我们既可以通过 Eclipse 标准的 Update 机制来远程安装 EclEmma 插件,也可以从站点http://sourceforge.net/projects/eclemma/下载 zip 文件并解压到 eclipse 所在的目录中。安装完成并重新启动 Eclipse 之后,工具栏上应该出现一个新的按钮。

  下面我们用EclEmma运行我们上面Junit的例子,看看测试覆盖率是多少,点击这个新的按钮,运行Junit Test。

  可以看到EclEmma 用不同的色彩标示了源代码的测试情况。其中,绿色的行表示该行代码被完整的执行,红色部分表示该行代码根本没有被执行,而黄色的行表明该行代码部分被执行。可见我们的测试用例对逻辑类LogicClass的测试达到了100%。

  有时候想一次运行中覆盖所有的代码通常比较困难,如果能把多次测试的覆盖数据综合起来进行察看,那么我们就能更方便地掌握多次测试的测试效果。EclEmma 提供了这样的功能。通过 Coverage 视图的工具按钮来结合多次覆盖测试的结果。在弹出框中点击OK按钮,就可以看到多次测试对代码的测试覆盖率了。

  4. 如何使用Ant批量运行junit单元测试用例并生成测试报告

  我们编写完单元测试用例以后,我们就可以运行单元测试用例来检查我们的代码有没有bug,以后如果代码发生改变,我们就可以运行单元测试用例来检查我们的修改有没有带进新的bug。但如果每个测试用例都要手工运行那就比较繁琐了,下面我们介绍如何使用ant进行批量测试和生成测试报告。

  4.1 什么是ant:

  Ant是一个类似make的、用java实现的构建工具,项目的构建、包装和发布过程中几乎每一件事都可以由Ant的任务来处理。Ant凭借出色的易用性、平台无关性以及对项目自动测试和自动部署的支持,已成为众多项目构建过程中不可或缺的独立工具,并已经成为事实上的标准。

  4.2 如何使用ant批量运行junit测试用例并生成测试报告:

  随着项目的进展和项目的规模在不断的膨胀,为了保证项目的质量,有计划的执行全面的单元测试是非常有必要的。利用Ant集成Junit可以通过配置批量运行所指定的测试用例并生成测试报告,可以让开发人员及时发现代码中所隐藏的bug,及时进行修改,极大的提高工作效率,从某种意义上做到持续集成。

  Ant 内置了对 JUnit 的支持,它提供了两个 Task:junit 和 junitreport,分别用于执行 JUnit 单元测试和生成测试结果报告。使用这两个 Task 编写构建脚本,可以很简单的完成批量运行单元测试并生成测试报告的任务。

  首先把junit的包加载到ant的编译目录下:打开 Eclipse 的window菜单,选择reference选项界面,选择 Ant -> Runtime 选项,将 Junit 4.* 的 JAR 文件添加到 Classpath Tab 页中的 Global Entries 设置项里。还有记得检查一下 Ant Home Entries 设置项中的 Ant 版本是否在 1.7.0 之上,如果不是请替换为最新版本的 Ant JAR 文件,Eclipse3.2内置的ant版本是1.65,eclipse3.4内置的ant版本是1.70,所以如果我们使用的junit版本是4以上的,最好用eclipse3.4。

  接下来是编写 Ant 构建脚本 build.xml。虽然这个过程稍嫌繁琐,但这是一件一劳永逸的事情。

  把此build.xml文件放到工程的根目录下,修改test属性的值为我们要运行的单元测试用例的包路径名,如果为空默认运行工程所有的单元测试,在Eclipse下打开此build.xml文件,在右边的outline视图下右击ant的 junit任务,选择Run As Ant Build,就可以运行此ant文件的junit任务,然后我们就可以在Eclipse的控制台上看到Ant任务的执行信息,任务执行完后,就会在工程的 report目录下的“framework-${DSTAMP}-${TSTAMP}”临时文件夹下生成html类型的测试报告。

原文转自:http://www.uml.org.cn/Test/201001217.asp