关于这个编译代码段,您应该注意的主要事情是中元素的 styledir 属性;它指定了用户自定义的 XSLT 文件所在的目录。为捕获日期/时间戳,您需要在 build.xml 某处的任务前引入任务。
让电子邮件任务自动化
Ant 有一个内建的任务,但不幸的是这个任务只有文本消息的性能,不能处理文件附件。 但最近,一项任务被提交到 Ant 开发组,它实现了 MIME 邮件的性能。
我和另两个积极的 Ant 开发者一起工作,改善这个最近提交的任务,这样它就可以支持 Ant 的 FileSet 特性以及抄送和暗送的邮件功能。我还添加了另一个很好的特性 ― 将文件附加到电子邮件消息正文的能力。
现代的电子邮件阅读器可以像 MIME 那样显示附带的 HTML 内容,还可以像浏览器那样解读 HTML 代码。图 1 显示了使用任务、用 Ant 发送的 JUnit 报告电子邮件样本是什么样子。
图 1. 用 Ant 发送的 JUnit 报告样本发送电子邮件的代码如清单 3 所示。
清单 3. build.xml 中用来发送电子邮件的代码段代码注释:
用来定义任务,因为现在 Ant 没有提供这个功能。以后,这个任务可能会成为 Ant 的可选任务之一;那么就会成为多余。 用来创建用在电子邮件主题中的 TODAY 属性。在 build.xml 的“准备”或“初始化”阶段包含任务很常见,所以根据您的情况,它可能是多余的。具有清楚的自解释的语法。提供的代码中包含了这项任务的 Ant 风格的帮助文件(请参阅参考资料 )。不仅 HTML 报告被发送(使用 messageFile 属性以便附加到消息的正文部分),而且原始的 XML 结果文件也作为标准 MIME 附件用被发送了。
在前面创建了一个名叫 overview-summary.html 的文件(因为指定了“noframes” 选项)。
排障、测试和部署
我为 Ant 开发团体提供了刚才讨论的所有的代码修正,他们已经认可将其包含到以后的发行版中去。但是,因为官方的 Ant 发行版还没有包含这篇文章中使用的技巧,在让这些技巧为您服务之前还需要采取一些措施。
让代码生效
第一,这些代码的修正是基于 Ant 1.3 发行版的;这是我将推荐的用于这代码的唯一 Ant 版本。 提供的代码包含了 JUnitMail.jar 和用于生成 jar 文件的源代码。这个 jar 文件必须存在于启动 Ant 环境中的 classpath 里 ― 在 Ant 的 optional.jar之前。
如果您是个典型的 Ant 用户,您通过 $ANT_HOME/bin 中的包装脚本之一运行 Ant。这些包装脚本在启动 Ant 前将所有 $ANT_HOME/lib 中的 jar 文件放入 classpath。在 Windows 平台下只要将 JUnitMail.jar 放入 $ANT_HOME/lib 目录,用 ant.bat 就可以处理 classpath 问题。
如果遇到过古怪的行为(例如,也许从捕获的额外参数没有在 XML 文件中出现),那么就调试在包装脚本中用到的 classpath(例如,ant.bat 中的 %LOCALCLASSPATH% )并修改包装脚本,确保 classpath 中 JUnitMail.jar 在 optional.jar 之前。
测试代码
在将这新的代码集成到 classpath 中以后,用 XML 格式化器测试一个简单的 JUnit 测试示例(如清单 2 所示)确保捕获了额外的 Ant 属性。
额外属性作为元素在 XML 格式化器中被捕获。如果,由于某种原因致使属性元素没有出现,就可能是一个 classpath 的问题。
确保修正后的 JUnit 任务正在被使用,一个保险的办法是使用我的 JUnitMail.jar 版本中提供的 JUnitTask.class 、 JUnitTest.class 、 JUnitTestRunner.class 和 XMLJUnitResultFormatter.class 来代替 optional.jar 中相应的文件。
任务有两个依赖条件 ― JavaMail 和 Java 活动框架(请参阅参考资料)。在启动 Ant 时,这两个 jar 文件必须放在 classpath 中,以便使用。
定制布局
您可以通过调整 XSLT 文件定制 JUnit 结果的 HTML 布局。我通过为每个测试套件在隐藏的 中添加额外属性以及添加一些用于隐藏及显示该额外信息的 JavaScript 的方法修改了 Ant 的标准布局。这些 JavaScript 技巧可以在 Internet Explorer 中生效,但在 Netscape 中不起作用(它显示了所有的属性,没有隐藏)。
我添加新捕获属性的首要目的仅仅是让那些信息可用,不过将这些属性结合到 HTML 报告中的方法,还有很大的改进余地。(请记住,如果您做了任何改进,请将之提交到 Ant 开发者和用户团体,让我们大家分享!)
让 XP 成真
一旦您使用了我的补丁,让编译和测试过程自动进行只是个在 cron 作业(或者是 Windows 平台上的 at 作业)中包装 Ant 执行的问题。
理想化的想法是,自动进行的过程将会把代码从您的源代码管理系统中提取出来,完成编译、执行单元测试、然后每晚用电子邮件发送结果。还有将整个编译日志捕获并用电子邮件发送或张贴到 intranet 站点,这样您就与“持续集成”和 XP 梦想接近了一步。
参考资料 您可以参阅本文在 developerWorks 全球站点上的英文原文 .
请参与有关本文的讨论论坛 。
您会在这个压缩文件中找到所有 Ant 的 JUnit 任务和新的 MimeMail 任务的补丁, 以及增强的 XSL 文件。
请从 Jakarta project 下载Ant 1.3 。
如果直到今天您仍没有(使用JUnit )测试代码,现在机会来了。
若要开始合并 Ant/JUnit(包括如何创建 JUnit 测试案例),请阅读 Malcolm Davis 的“ Incremental development with Ant and JUnit ”(developerWorks,2000 年 11 月)。
出色的文章,“ Ant in Anger ,”描述了 Ant 在典型的产品开发环境下的使用。
请尝试极端编程 站点以获取更多这个主题的信息。
JavaMail和Java 活动框架是任务必需的。
Ant 和 JUnit 是对WebSphere应用开发环境的完美的测试赞美辞;版本 4.0 提供了增强的扩展,例如 Java 业务规则,使得不必重写代码就可以改变 Java 应用。
需要企业级的系统测试的帮助,请看IBM Performance Management, Testing and Scalability Services 提供了些什么(包含一个有关企业测试的库,PDF 格式)。
文章来源于领测软件测试网 https://www.ltesting.net/