代码之家  ›  专栏  ›  技术社区  ›  Yossale

在同一个vm上运行几个ant任务

  •  0
  • Yossale  · 技术社区  · 16 年前

    我在用ant运行单元测试

    <target name="test" depends="tomcatDeploy" description="Build and run tests">
        <ant dir="${aDir}" target="test"/>
        <ant dir="${bDir}" target="test"/>
        <ant dir="${cDir}" target="test"/>
        <ant dir="${dDir}/ExtFramework"  target="test"/>
    </target>
    

    我想在同一个虚拟机上运行它们-否则我会 很多 创建jvm时的开销以及重新创建静态等等。

    有办法吗?

    4 回复  |  直到 14 年前
        1
  •  1
  •   martin clayton egrunin    14 年前

    我认为 subant 任务就是你要找的。假设所有子目录都有一个公共父目录,则可以执行以下操作:

    <target name="test" depends="tomcatDeploy" description="Build and run tests">
        <subant target="test">
            <fileset dir="${parent}" includes="**/build.xml"/>
        </subant>
    </target>
    

    编辑 你是怎么进行测试的?如果您正在使用 junit 任务,你有 fork="yes" ?如果是的话,它将在一个新的vm中运行测试。把它改成 fork="no" 在同一个虚拟机中运行测试。

        2
  •  0
  •   carej    16 年前

    任务本身不会创建新的虚拟机。您的测试是否正在创建新的虚拟机?

        3
  •  0
  •   guerda    16 年前

    尽量减少这个问题:如果您通过junit手动启动测试,您的测试是否会创建一个新的vm?或者这个问题只是和蚂蚁一起出现的吗?
    可能是junit或者您的测试创建了一个新的vm并泄漏了内存。

        4
  •  0
  •   Brian    16 年前
    <parallel threadCount='4'>
      <ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'>
        <param name='file' value='one.txt'/>
      </ant>
      <ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'>
        <param name='file' value='two.txt'/>
    
      </ant>
      <ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'>
        <param name='file' value='three.txt'/>
      </ant>
      <!-- repeated about 40 times -->
    </parallel>
    

    http://www.java-tips.org/other-api-tips/ant/how-to-use-parallel-task.html