ant junit 不是 运行 带有测试目标的单一方法

ant junit not running single method with test target

我有一个构建系统 运行ning Ant Version 1.10.6 我在下面总结的 macrodef 被构造为打开“run.multi”,或者它 运行 是一个单一的测试方法,或者它做其他事情(我没有包括它因为它不相关)。 我在这里遇到的问题是,我无法仅通过一种方法 'test.method' 将其设置为 运行 - 我已经打开详细信息并且可以看到它全部进入并正确设置,但它 运行所有的方法都不管!

    <echo level="info" message="Single method=@{test.method}" />
    
    <junit printsummary="on" showoutput="true" fork="yes" forkmode="once">
        <assertions>
            <enable/>
        </assertions>

        <test unless="${run.multi}"
                name="@{test.single}"               
                methods="@{test.method}"
                haltonfailure="no" 
                haltonerror="no">
            <formatter type="plain" usefile="false"/>
        </test>

这是输出的一部分:

[echo] Single method=testSimple
[junit] Running com.test.util.TheTestToRun
[junit] Testsuite: com.test.util.TheTestToRun
[junit] Running on Java 9.0.4
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.473 sec

发生这种情况的原因是 ant 中的错误或功能 - 围绕 junit 部分的 fork 选项。设置 'fork=no' 问题就消失了:

    <junit printsummary="on" showoutput="true" fork="no" forkmode="once">
        <test unless="${run.multi}"
                name="@{test.single}"               
                methods="@{test.method}"
                haltonfailure="no" 
                haltonerror="no">
            <formatter type="plain" usefile="false"/>
        </test>

部分输出:

[junit] Running com.test.util.TheTestToRun
[junit] Testsuite: com.test.util.TheTestToRun
[junit] Running on Java 9.0.4
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.12 sec