<target name="junit" depends="compiletests"
          description="Execute Unit Tests">
    <junit>
      <formatter type="xml" />
      <batchtest>
        <fileset dir="${build}">
          <include name="test/**/*Test.class" />
        </fileset>
      </batchtest>
    </junit>
    <junitreport>
      <fileset dir=".">
我想把
<fileset>
    <include name="text/**/*Test.class"/>
</fileset>
做成这样的效果
就是我中另外有一个XML文件,那个文件里全部是这样的标签<classname>
     <methodname></methodname>
</classname>
<classname>
     <methodname></methodname>
</classname>
<classname>
     <methodname></methodname>
</classname>
然后我希望ANT能够把这个XML文件读入ANT自身,然后把按照这个XML,把所有的类名填入到
<include name="test/**/*Test.class"/>这个标签中,这样这个标签就可以不用再使用通配符了,而是使用一个个明确的文件名或JAVA类名了

解决方案 »

  1.   

    我觉得你最好把<target name="junit" depends="compiletests" 
              description="Execute Unit Tests"> 
        <junit> 
          <formatter type="xml" /> 
          <batchtest> 
            <fileset dir="${build}"> 
              <include name="test/**/*Test.class" /> 
            </fileset> 
          </batchtest> 
        </junit> 
        <junitreport> 
          <fileset dir="."> 
    这块放到一个子的a.xml 文件中, 另外通过一个主build.xml 的 配置文件,那个文件可以先准备,就是把你的另一个文件 b.xml的内容 放到 a.xml中,
    这步需要你自己扩展, 写个任务, 然后在主的 build.xml 中调用 b.xml中的 targe junit我原来这么做过类似的东西,不过后来合到一个里面去了,当然, build.xml的运行是通过 java 来的,所以在运行 ant 之前,就把 build.xml 生成好了
      

  2.   

    要不就用<includesfile name="classfile"/>,然后再classfile里每一行指定需要的类名字,这样classfile文件中的每一行就被作为一个pattern来处理了。
    要查看执行那些类名的时候,直接classfile文件就可以了。