我正在使用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;的过程中会得到很多的开销。重建静力学等等。
有办法做到这一点吗?
答案 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