Ant JUnit Batchtest .java或.class

Ian*_*son 6 java ant junit

我看到一些链接似乎暗示JUnit测试可以从.java文件而不是.class执行

例如

<junit printsummary="yes" haltonfailure="yes" haltonerror="yes">
        <classpath refid="ui.tests.classpath"/>
        <formatter type="xml"/>
        <batchtest todir="${env.WORKSPACE}/UITests/output">
            <fileset dir="${ui.tests.classes}">
                <include name="**/*Test.java"/>
            </fileset>
        </batchtest>
</junit>
Run Code Online (Sandbox Code Playgroud)

代替

<junit printsummary="yes" haltonfailure="yes" haltonerror="yes">
        <classpath refid="ui.tests.classpath"/>
        <formatter type="xml"/>
        <batchtest todir="${env.WORKSPACE}/UITests/output">
            <fileset dir="${ui.tests.classes}">
                <include name="**/*Test.class"/>
            </fileset>
        </batchtest>
    </junit>
Run Code Online (Sandbox Code Playgroud)

第一个例子是有效的案例吗?由于ClassNotFoundExceptions,我无法使它工作

mik*_*mil 3

我同意上面的评论,看起来标签允许 .java 或 .class。

我做了一个小测试,当我使用此设置运行测试时 - 其中dir=somefolder,然后<include name="**/*Test.java"/>当指向的文件夹包含类文件时使用,那么 Ant 基本上会有一个空文件集来处理 *Test.java,但是当使用<include name="**/*Test.class"/>时文件集不为空,测试用例将运行。

这是我快速测试的结果。据我所知,您似乎需要指定 *Test.class 来获取测试用例。