2012-11-19 27 views
0

我想在命令行中定義要運行的單元測試。測試在基於Java包的邏輯結構中定義。在命令行中,我想定義測試運行中要包含哪些Java包(即要包含哪些測試)。Ant不支持循環內部的batchtest元素

通過這種方式,我想遍歷路徑值的標記化列表,幷包含來自這些路徑的Java測試。但是,batchtest元素不支持嵌套for循環。我如何修改這個來做我想要的?所以包含的數量與定義的路徑值一樣多。

更新時間:

我已經定義的目標是這樣的:

<target name="test"> 
    <property name="path" value="**"/> 
    <junit fork="yes" failureproperty="true" forkmode="once"> 
      <formatter type="xml" /> 
      <classpath> 
       <pathelement path="bin.path"/> 
      </classpath> 

      <batchtest haltonerror="false" todir="${test.dir}"> 
       <fileset dir="/src/test/"> 
        <for list="${path}" param="path"> 
         <sequential> 
          <var name="path" value="@{path}"/>      
          <include name="**/${path}/**/*.java" /> 
         </sequential> 
        </for> 
       </fileset> 
      </batchtest> 
     </junit> 

回答

0

你可以使用reguler表達。

例如;

<batchtest haltonfailure="yes" todir="/test"> 
     <fileset dir="/build/classes/" 
       includes="**/TestBlaBla.class" excludes="**/BlaBla.class" /> 
</batchtest> 

我希望它對你有幫助。

+0

我實際上已經在使用文件集和正則表達式,例如「**/$ {path}/*。java。問題是$ path是列表中的一個標記,因此列表必須循環才能檢索所有的路徑值 – user1340582

+0

如果你給了你的確切的「目標」,我可以幫助我的螞蟻腳本 –

+0

我更新了與Ant目標的原始問題 – user1340582