版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://ralf0131.blogbus.com/logs/75756167.html
参考:http://today.java.net/pub/a/today/2003/09/12/individual-test-cases.html
修改build.xml添加如下几个target,第一个target要求必须在命令行输入一个测试用例文件名,否则会出错,第二个target要求必须输入jvm参数,真正的工作在第三个target中完成,即为每一个testcase单独fork出一个进程,并指定相应的jvm参数。
<target name="ensure-test-name" unless="test">
<fail message="You must run this target with -Dtest=TestName"/>
</target>
<target name="ensure-jvmarg" unless="jvm.arg">
<fail message="You must run this target with -Djvm.arg=args"/>
</target>
<target name="runtest" depends="compile, ensure-test-name,ensure-jvmarg">
<junit printsummary="withOutAndErr" fork="yes" timeout="6000">
<classpath refid="junit.classpath" />
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset dir="src/test">
<include name="**/${test}.java"/>
</fileset>
</batchtest>
<jvmarg value="${jvm.arg}"/>
</junit>
</target>
运行命令为:
ant runtest -f your_build.xml -Dtest=XXXTest -Djvm.arg="-agentlib:xxxagent -Xmx128m"
-f指定build.xml的目录,-Dtest为所要运行的Testcase文件,程序为在src/test(位于junit->batchtest->fileset标签下,可自定义)这个目录下寻找以包含XXXTest的java文件(可用通配符作为输入)。-Djvm.arg即为输入的jvm参数。
update:
timeout参数可指定一个时间(以毫秒计数),超过此时间自动kill该进程。