快速业务通道

追求代码质量 - 通过测试分类实现敏捷构建 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
。不仅如此,在检查了这些测试后,您现在知道构建花了三个小时的原 因是:绝大部分时间都被组件测试所占用。下一个问题是,如何用 JUnit 实现 测试分类?

有几种方式可选,但这里我们只关注于其中两种最简单的方式:

根据所需种类创建定制的 JUnit 套件文件。

为每种测试类型创建定制目录。

用 TestNG 进行测试分类

用 TestNG 实现测试分类相当简单。用 TestNG 的 group 注释按照种类在逻辑上划分测试,这与将适当的 group 注释应用到所 需测试中一样简单。这样一来,运行一个特定类型实际上就是将一个相应的组名 称传递给一个测试运行程序,如 Ant。

追求代码质量 - 通过测试分类实现敏捷构建(3)

时间:2010-12-12 IBM Andrew Glover

创建定制套件

可以使用 JUnit 的 TestSuite 类(属于 Test 类型)来定义许多互相归属 的测试。首先,创建一个 TestSuite 实例,并为其添加相应的测试类或测试方 法。然后,可以通过定义一个叫做 suite() 的 public static 方法,在 TestSuite 实例中指定 JUnit。包含的所有测试随后将在单个运行中执行。因而 ,可以通过创建单元 TestSuite、组件 TestSuite 和系统 TestSuite 来实现测 试分类。

例如,清单 1 中显示的类创建了一个 TestSuite,其持有 suite() 方法中 所有的组件测试。请注意此类并不是非常特定于 JUnit 的。它既没有扩展 TestCase,也没有定义任何测试用例。但它会反射性地找到 suite() 方法并运 行由它返回的所有测试。

清单 1. 用于组件测试的 TestSuite

package  test.org.acme.widget; import junit.framework.Test; import junit.framework.TestSuite; import test.org.acme.widget.*; public class ComponentTestSuite {   public static void main(String[] args) {   junit.textui.TestRunner.run(ComponentTestSuite.suite());   }   public static Test suite(){   TestSuite suite = new TestSuite();   suite.addTestSuite(DefaultSpringWidgetDAOImplTest.class);   suite.addTestSuite(WidgetDAOImplLoadTest.class);   ...   suite.addTestSuite(WidgetReportTest.class);   return suite;   } }

定义 TestSuite 的过程的确需要浏览现有的测试,并将它们添加到相应的类 中(即,将所有的单元测试添加到一个 UnitTestSuite 中)。这也意味着,由 于在一个给定分类中编写新测试,不得不将它们按照一定的程序添加到适当的 TestSuite 中,当然,还需要重新编译 它们。

运行独立的 TestSuites,然后试着创建单一的 Ant 任务,Ant 任务调用正 确的测试集。可以定义一个 component-test 任务,用于组织 ComponentTestSuite 等,正如清单 2 中所示:

清单 2. 只运行组件测试的 Ant 任务

<target  name="component-test"        if="Junit.present"        depends="junit-present,compile-tests">   <mkdir dir="${testreportdir}"/>   <junit dir="./" failureproperty="test.failure"         printSummary="yes"         fork="true" haltonerror="true">    <sysproperty key="basedir" value="."/>    <formatter type="xml"/>    <formatter usefile="false" type="plain"/>    <classpath>    <path refid="build.classpath"/>    <pathelement path="${testclassesdir}"/>    <pathelement path="${classesdir}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号