在同一个VM上运行多个ant任务

时间:2009-05-12 12:37:56

标签: ant junit

我正在使用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&amp;的过程中会得到很多的开销。重建静力学等等。

有办法做到这一点吗?

4 个答案:

答案 0 :(得分:1)

我认为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"以在同一个VM中运行测试。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试最小化问题:如果通过JUnit手动启动,您的测试是否会创建新VM?或者问题是否只与蚂蚁组合发生? 可能是JUnit或你的测试创建了一个新的VM和泄漏内存。

答案 3 :(得分:0)

<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