您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
使用Grester简化Java应用程序的JUnit测试
作者:网络转载 发布时间:[ 2013/3/22 14:37:43 ] 推荐标签:

必须注意的是 Grester 安装在 Maven 的本地系统库中的位置。如果不熟悉 Maven,则其默认本地系统库为 $USER_HOME/.m2/repository/。默认情况下,在运行 Windows 的计算机中,$USER_HOME 很可能被转换为 Documents and Settings/$USERNAME/(其中 $USERNAME 是登录的用户)。在 Linux/UNIX 计算机中,$USER_HOME 将转换成 /home/$USERNAME/。快速浏览 Windows 本地系统库可以发现 Grester 被安装到 C:/Documents and Settings/$USERNAME/.m2/repository/org/apache/maven/plugins 中,并且创建了一个名为 maven-grester-plugin 的目录。此目录包含版本号目录(新版本是 V0.3);该目录中有实际的 maven-grester-plugin-x.x.jar 文件。

使用此结构的原因在于 Grester 的 pom.xml 文件。如图 6 所示,Grester 项目的 groupId 是 org.apache.maven.plugins。用包含此字符串作为 groupId 值的 Java 或 Groovy 语言编写的所有 Maven 插件,相比拥有其他一些任意 groupId 的 Maven 插件,都包含更易于通过命令行执行的 mojo。由于 Grester 将使用此字符串,因此在通过命令行执行各个 mojo 目标时,您无需预先考虑 groupId 和 artifactId。

图 6. Grester 的 pom.xml 配置文件中的 groupId

maven-grester-plugin 目录是在安装时创建的(install 目标将创建此目录),如下所示。其他标准 Maven 插件都安装在同一个上级目录中,例如 maven-surefire-plugin 和 maven-install-plugin 目录。

图 7. Maven 的本地系统库中的 Grester

如果项目的自定义组 ID 和工件 ID 太长且很难记或者只是重复键入很麻烦,那么使用特殊的 groupId 字符串十分有利。这是默认插件(例如,maven-compiler-plugin 或 maven-surefire-plugin)的基本 Maven 目标(例如 compile、test,或者 test-compile)在执行时不需要诸如 mvn org.apache.maven.plugin:maven-compiler-plugin:2.0.2:compile 或 mvn org.apache.maven.plugin:maven-surefire-plugin:2.3:test 之类的命令的原因(只需 mvn compile 或 mvn test)。

将 Jester 安装为 Grester 的主要依赖关系

此时,除了 Grester 的核心 —— 实际的 Jester 依赖关系之外其他内容都已绪。Windows 和 Linux/UNIX 平台提供了两个方便的脚本,它们可以把 Jester(即,实际的 jester-1.37.jar 文件)安装到 Maven 的本地系统库中。为什么提供这些脚本?难道不能在 Maven 获得其编译器、安装程序和其他插件依赖关系时从 Maven 所在的相同外部资源中下载这些脚本么?答案是 Jester 没有放在可公开获得的已知 Maven 系统库中(例如,Maven 的 Ibiblio),因此您不能用包含 Jester 的远程系统库来配置 Maven 的 $MAVEN_HOME/conf/settings.xml 文件(不考虑用 groupId-artifactId 版本组合安装它的方法)。

因此,分别为 Windows 和 Linux/UNIX 提供了 install-jester.bat 和 install-jester.sh 可执行文件。如果任何一个可执行文件在任意平台上执行失败,都可以使用如下所示的命令作为解决方法。

图 8. 建立 Jester 依赖关系

注:我写完这篇文章后,Grester V1.0.1 被发布到 Maven 公共系统库 中。这种持续不断地改进意味着您现在可以直接从的 Apache 系统库中获得插件,但是仍然需要有提供结合功能的 Jester 核心 JAR 和指令才能构成完整的架构。

在示例 Maven 项目中使用 Grester

那么,您已经得到了一个精心编织的 Maven 项目,并且希望在单元测试(或者至少在一组测试中)中测试 Jester。无论是单元测试还是集成测试,明智的做法是要么把项目复制到文件系统中的某个位置并对该副本运行 Jester,要么使用现有副本,但是要准备好恢复对代码源文件所做的所有更改。这是因为 Jester 将更改现有的源代码文件,保存更改并重新编译代码(保留同一个目录中的类文件作为源文件)。如果项目拥有的代码库相对较小或者所选测试很少,则可以使用现有代码库副本。

在 Eclipse 中设置示例文件

以测试为例,您将使用在 Eclipse IDE 中构造和准备的基本 Maven 项目。虽然 参考资料 部分包含关于如何操作的链接和信息,但是如何在特定开发环境内构造 Maven 项目和创建必要文件不在本文讨论范围内。图 9 演示了 Eclipse IDE 内的项目。

图 9. Eclipse IDE 中的示例 Maven 项目

举例来说,在项目中使用一个相对简单的类和测试类。该类将使用 Java 语言处理外部过程命令的执行。清单 3 显示了测试的类的主要部分。

上一页12345下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd