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
Java 为什么Junit测试只支持fork的不完全重写?_Java_Ant_Junit_Fork - Fatal编程技术网

Java 为什么Junit测试只支持fork的不完全重写?

Java 为什么Junit测试只支持fork的不完全重写?,java,ant,junit,fork,Java,Ant,Junit,Fork,我注意到JUnitBatchTest允许重写Junit的forkmode参数。那很好 但是,在进一步检查时——batchtest似乎不支持“forkmode”标志 这似乎很奇怪。这意味着被重写的选项与junit fork选项的功能不同 这是故意的吗?如果是,为什么 根据,您不能覆盖batchtest中的forkmode参数 通常,您会像这样使用forkmode选项: <junit printsummary="yes" fork="yes" forkmode="perBatc

我注意到JUnitBatchTest允许重写Junit的forkmode参数。那很好

但是,在进一步检查时——batchtest似乎不支持“forkmode”标志

这似乎很奇怪。这意味着被重写的选项与junit fork选项的功能不同

这是故意的吗?如果是,为什么

根据,您不能覆盖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可以是“一次”、“perTest”或“每批”

“perBatch”选项用于为每个嵌套的
创建一个VM。如果在
中重写
的“fork”,您将在单个VM中运行测试


元素中添加“forkmode”选项没有意义。您可以在junit元素中控制VM“分叉”模式。

您是在谈论junit ant任务吗?这个问题很不清楚。我不同意:每批测试一次(与每批测试一次相同),另一批测试perTest是有意义的。这将允许分批运行大多数测试,每个批运行一个JVM,一个接一个地运行“有问题的”测试,所有测试都在同一个junit任务中运行。甚至更好的是,forkMode=“per100”或类似的工具也很好。偶尔通过新的JVM清理一次,但不是针对每个测试。