2011-01-21 38 views
5

我有一個目錄,在我的項目中有一堆JUnit測試。到目前爲止,我對每個單元測試都使用了單獨的目標。例如:用Ant構建器運行所有的單元測試

<target name="MyTest"> 
     <mkdir dir="${junit.output.dir}"/> 
     <junit fork="yes" printsummary="withOutAndErr"> 
      <formatter type="xml"/> 
      <test name="tests.MyTest" todir="${junit.output.dir}"/> 
      <classpath refid="MyProject.classpath"/> 
     </junit> 
    </target> 

此方法需要我每次添加單元測試時更改構建文件。
我希望能夠使用單個Ant構建器目標來運行項目中的所有單元測試。
有可能嗎?

回答

9

是的這是,你需要看的文件集標籤,e.g:

<junit printsummary="yes" haltonfailure="yes"> 
    <classpath> 
    <pathelement location="${build.tests}"/> 
    <pathelement path="${MyProject.classpath}"/> 
    </classpath> 

    <formatter type="xml"/> 

    <batchtest fork="yes" todir="${reports.tests}"> 
    <fileset dir="${src.tests}"> 
     <include name="**/*Test*.java"/> 
     <exclude name="**/AllTests.java"/> 
    </fileset> 
    </batchtest> 
</junit> 

的重要組成部分,是使用文件集和水珠/通配符模式的匹配測試的名稱。在junit任務全部文檔與這裏的例子:

http://ant.apache.org/manual/Tasks/junit.html

3

沒錯!我們使用ant命令batchtest來完成它。看起來是這樣的:

 <batchtest todir="${junit.report.dir}"> 
      <fileset dir="${basedir}\test\unit"> 
       <include name="**/*Test.java" /> 
      </fileset> 
     </batchtest> 

谷歌,它應該排序你出去

相關問題