Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一个VM上运行多个ant任务_Ant_Junit - Fatal编程技术网

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

在同一个VM上运行多个ant任务,ant,junit,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=

我正在使用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时会有很多开销&重新创建静态等等


有办法做到这一点吗

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

我认为这项任务就是您正在寻找的。假设所有子目录都有一个公共父目录,则可以执行以下操作:

<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中运行测试。

尝试最小化问题:如果通过JUnit手动启动测试,是否会创建新VM?或者该问题只会与ant一起出现?
可能是JUnit或您的测试创建了一个新的VM和泄漏内存。


<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>

这不是和yossale的方法一样的效果吗?因为它与手册中的文本相同:“为所有定义的子构建调用给定的目标。这是用于批量项目执行的ant的扩展。如果该任务调用它所属的同一构建文件,则不得在目标之外使用。”()和“在提供的构建文件上运行Ant。这可用于构建子项目。如果此任务调用它所属的同一生成文件,则不能在目标之外使用它。“()编辑回答以回应评论。Jason,subant在封面下使用ant,所以你对效率的评论毫无意义。我真的搞砸了这一点;antcall重新解析构建文件并运行所有相关目标,使其比subant慢得多。真是罪过。我想他想在一个VM中完成这项工作?谢谢,但我需要在一个V中运行所有这些M.我使用“junit”任务(~new ant feature)完成了这项工作,但随后我遇到了另一个问题——本地目录是由jvm设置的,如果所有人都使用相同的目录,那么类路径就有问题