《JUnit实战(第2版)》—— 2.3 JUnit的测试运行器

2.3 JUnit的测试运行器

JUnit实战(第2版)
如果你刚开始编写测试,那么你会希望尽可能快捷地运行它们。这样你就能够将测试融合到开发循环中去:编码→运行→测试→编码(或者测试→编码→运行→测试,如果你偏爱测试先行的方式)。现在有很多IDE(集成开发环境)与编译器都可以快速构建并运行应用程序,其中JUnit就可以让你构建和运行测试。

2.3.1 测试运行器简介

JUnit 4可以向后兼容3.8.x版本。因为JUnit的4.x版本与3.x版本完全不同,所以JUnit 4很有可能不仅要运行JUnit 4的测试还要运行JUnit3.x版本的测试。这也就是为什么在JUnit的最新版本中提供了不同的运行器(如表2.3所示),分别用来运行JUnit 3.x、JUnit 4的测试以及其他不同的测试集。

表2.3 JUnit 4的测试运行器

如果测试类中没有提供任何运行器,那么JUnit将会使用一个默认的运行器。如果你希望JUnit使用某个特定的测试运行器,那么就使用@RunWith注释来指定测试运行器类,如以下代码所示:

现在我们已经初步了解了不同的测试运行器以及如何指导JUnit来使用它们,下面我们将更深入地探讨各种测试运行器。

2.3.2 JUnitCore façade

为了能够尽可能快捷地运行测试,JUnit提供了一个façade(org.junit.runner.JUnitCore),它可以运行任何测试运行器。JUnit设计这个façade来执行你的测试,并收集测试结果与统计信息。你可以在第1章的图1.3中看到实际应用中的JUnitCore类。

设计模式实践:façade

façade1是一种设计模式,它为子系统中的一组接口提供了一个统一的接口。façade定义了一个更高级别的接口,使得子系统更易于使用。你可以使用façade来将一些复杂的对象交互简化成一个单独的接口。

JUnit的façade决定使用哪个运行器来运行你的测试。它支持JUnit 3.8的测试、JUnit 4的测试以及两者的混合体。

在JUnit 4版本之前,JUnit包含了Swing与AWT测试运行器;但是到了JUnit 4就不再包含它们了。那些图形化界面的测试运行器都带有一个横跨屏幕的进度指示条,这就是著名的JUnit绿条。JUnit的用户都喜欢把通过测试叫做“绿条”,把测试失败叫做“红条”。因此,“保持绿条就是保持代码干净”是JUnit的座右铭。

图2.1显示了在Eclipse中一个绿条测试运行后的JUnit视图。

当前,所有主要的IDE都支持与JUnit的集成。

2.3.3 自定义测试运行器

不像JUnit框架中的其他元素,这里没有Runner接口。相反,JUnit自带的几个测试运行器都继承了org.junit.runner.Runner类。如果想创建你自己的测试运行器,你就需要扩展Runner类。关于这个话题的详细介绍,可以参考本书的附录B。

时间: 2024-08-02 06:45:00

《JUnit实战(第2版)》—— 2.3 JUnit的测试运行器的相关文章

《JUnit实战(第2版)》—— 第2章 探索JUnit的核心

第2章 探索JUnit的核心 JUnit实战(第2版)Mistakes are the portals of discovery. 错误是发现之门. -James Joyce 本章重点 使用核心JUnit类理解JUnit的机制理解JUnit的生命周期在第1章中,我们已经明确了我们需要一种可靠的.可复用的方法来测试我们的程序.我们的解决方案就是编写或复用一个框架来驱动测试代码,以测试程序的API.因为我们的程序对现有的类增加了新的类.新的方法,所以我们也需要增加相应的测试代码.经验告诉我们,有时候

《JUnit实战(第2版)》—第2章2.3节JUnit的测试运行器

2.3 JUnit的测试运行器JUnit实战(第2版)如果你刚开始编写测试,那么你会希望尽可能快捷地运行它们.这样你就能够将测试融合到开发循环中去:编码→运行→测试→编码(或者测试→编码→运行→测试,如果你偏爱测试先行的方式).现在有很多IDE(集成开发环境)与编译器都可以快速构建并运行应用程序,其中JUnit就可以让你构建和运行测试. 2.3.1 测试运行器简介JUnit 4可以向后兼容3.8.x版本.因为JUnit的4.x版本与3.x版本完全不同,所以JUnit 4很有可能不仅要运行JUni

《JUnit实战(第2版)》—第2章2.1节探索JUnit核心

第2章 探索JUnit的核心JUnit实战(第2版)Mistakes are the portals of discovery. 错误是发现之门. -James Joyce 本章重点 使用核心JUnit类理解JUnit的机制理解JUnit的生命周期在第1章中,我们已经明确了我们需要一种可靠的.可复用的方法来测试我们的程序.我们的解决方案就是编写或复用一个框架来驱动测试代码,以测试程序的API.因为我们的程序对现有的类增加了新的类.新的方法,所以我们也需要增加相应的测试代码.经验告诉我们,有时候类

《JUnit实战(第2版)》—第1章1.5节安装JUnit

1.5 安装JUnit JUnit实战(第2版) 为了使用JUnit来编写应用程序测试,就需要将JUnit的JAR文件添加到项目的编译classpath(类路径)和执行classpath中去,可以按照以下步骤操作. JUnit发布包包含了几个测试例子,你可以运行它们来熟悉JUnit测试的执行. 将JUnit发布包的ZIP文件解压缩到计算机操作系统上的一个目录(如Windows系统上的C:\或者UNIX操作系统上的/opt/)下. 在这个目录中,解压缩操作将会为了刚下载的JUnit发布包创建一个子

《JUnit实战(第2版)》—— 1.5 安装JUnit

1.5 安装JUnit JUnit实战(第2版) 为了使用JUnit来编写应用程序测试,就需要将JUnit的JAR文件添加到项目的编译classpath(类路径)和执行classpath中去,可以按照以下步骤操作. JUnit发布包包含了几个测试例子,你可以运行它们来熟悉JUnit测试的执行. 将JUnit发布包的ZIP文件解压缩到计算机操作系统上的一个目录(如Windows系统上的C:\或者UNIX操作系统上的/opt/)下. 在这个目录中,解压缩操作将会为了刚下载的JUnit发布包创建一个子

《JUnit实战(第2版)》—— 2.2 运行参数化测试

2.2 运行参数化测试 JUnit实战(第2版) Parameterized(参数化)的测试运行器允许你使用不同的参数多次运行同一个测试.代码2.2给出一个Parameterized运行器的实例(你可以在第1章的源代码示例中找到这个测试). 代码2.2 参数化测试 要使用Parameterized的测试运行器来运行一个测试类,那就必须要满足以下要求.首先,测试类必须使用@RunWith注释,并且要将Parameterized类作为它的参数..\Lucene实战\1.tif.其次,你必须声明测试中

《JUnit实战(第2版)》—第1章1.1节证实它能运行

第1部分 认识JUnit JUnit实战(第2版) 欢迎阅读<JUnit实战(第2版)>!JUnit是一个由Kent Beck和Erich Gamma于1995年年底着手编写的框架.自此以后,JUnit框架日益普及,现在已经成为单元测试Java应用程序的事实上的标准. 本书是第2版.<JUnit实战>的第1版非常畅销,由Vincent Massol和Ted Husted于2003年编写,其内容是基于JUnit 3.x版本的. 我们涵盖了JUnit最新的版本4.6,讨论了许多第1版尚

《JUnit实战(第2版)》—— 1.1 证实它能运行

1.1 证实它能运行 JUnit实战(第2版) 一些开发人员认为自动测试是开发过程中非常重要的一部分.你无法证实一个组件能够运行,除非它通过了一系列全面的测试.有两名开发人员觉得这类单元测试如此重要,以至于值得为它编写一个框架.1997年,Erich Gamma和Kent Beck针对Java创建了一个简单但有效的单元测试框架,叫做JUnit.他们的工作遵循了SUnit的设计,而SUnit是Kent Beck早期为Smalltalk创建的一个框架. NITION 框架* 个应用程序的半成品{![

《JUnit实战(第2版)》—— 1.7 小结

1.7 小结 JUnit实战(第2版)每位开发者都会执行某种类型的测试,来查看代码是否可以正常工作.使用自动单元测试的开发者能够根据需要重复执行这些测试,以确保新编写的代码可以正常工作并且不会破坏已有的测试. 没有JUnit,要创建简单的单元测试并非难事,但是随着测试变得越来越多.越来越复杂,编写和维持测试也就变得越来越困难.JUnit是一个单元测试框架,它使得创建.运行和修改单元测试更加简单.在这一章中,我们通过编写.运行一个简单的测试,对JUnit有了初步的认识.但是,JUnit提供的功能远