我注意到Junit batchtest允许覆盖junit的formode参数。非常好。
然而,在进一步检查时 - 批量测试似乎不支持“forkmode”标志?
这似乎很奇怪。这意味着overriden选项与junit fork选项的功能不同。
这是故意的,如果是这样,为什么?
答案 0 :(得分:2)
根据JUnit Ant task documentation,您无法覆盖batchtest中的forkmode参数。
通常你会像这样使用forkmode选项:
<junit printsummary="yes"
fork="yes" forkmode="perBatch"
haltonfailure="${halt.on.test.failure}"
failureproperty="test.failed">
<classpath refid="test.classpath"/>
<syspropertyset refid="junit.properties"/>
<jvmarg value="${test.locale}"/>
<jvmarg value="-Xmx256M"/>
<formatter type="plain"/>
<batchtest todir="${reports.test}">
<fileset dir="${src.test}">
<include name="**/Test*.java"/>
<exclude name="**/AllTests.java"/>
</fileset>
</batchtest>
</junit>
其中forkmode可以是“once”,“perTest”或“perBatch”。
“perBatch”选项用于为每个嵌套的<batchtest>
创建VM。如果在<junit>
中覆盖<batchtest>
的“fork”,则会在单个VM中运行测试。
<batchtest>
元素中没有额外的“forkmode”选项。您可以在junit元素中控制VM“分叉”模式。