WEB开发网
开发学院软件开发Java 追求代码质量: 通过测试分类实现敏捷构建 阅读

追求代码质量: 通过测试分类实现敏捷构建

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 例如,清单 1 中显示的类创建了一个 TestSuite,追求代码质量: 通过测试分类实现敏捷构建(6),其持有 suite() 方法中所有的组件测试,请注意此类并不是非常特定于 JUnit 的,Ant 任务调用正确的测试集,可以定义一个 component-test 任务,它既没有扩展 Tes

例如,清单 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}"/>    
  </classpath> 
  <batchtest todir="${testreportdir}"> 
  <fileset dir="test"> 
   <include name="**/ComponentTestSuite.java"/>         
  </fileset> 
  </batchtest> 
 </junit> 
</target> 

上一页  1 2 3 4 5 6 7  下一页

Tags:追求 代码 质量

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接