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 Ant不支持batchtest元素内部的循环_Java_Ant_Junit - Fatal编程技术网

Java Ant不支持batchtest元素内部的循环

Java Ant不支持batchtest元素内部的循环,java,ant,junit,Java,Ant,Junit,我想在命令行中定义要运行的单元测试。测试是在基于Java包的逻辑结构中定义的。在命令行中,我想定义测试运行中要包含哪些Java包(即要包含哪些测试) 通过这种方式,我希望循环遍历路径值的标记化列表,并包括来自这些路径的Java测试。但是,batchtest元素不支持嵌套for循环。我怎样才能修改它来做我想做的事?因此,包含的数量与定义的路径值一样多 更新: 我定义的目标如下: <target name="test"> <property name="path" valu

我想在命令行中定义要运行的单元测试。测试是在基于Java包的逻辑结构中定义的。在命令行中,我想定义测试运行中要包含哪些Java包(即要包含哪些测试)

通过这种方式,我希望循环遍历路径值的标记化列表,并包括来自这些路径的Java测试。但是,batchtest元素不支持嵌套for循环。我怎样才能修改它来做我想做的事?因此,包含的数量与定义的路径值一样多

更新:

我定义的目标如下:

<target name="test">
    <property name="path" value="**"/>
    <junit fork="yes" failureproperty="true" forkmode="once">
            <formatter type="xml" />
            <classpath>
                <pathelement path="bin.path"/> 
            </classpath>

            <batchtest haltonerror="false" todir="${test.dir}"> 
                <fileset dir="/src/test/">
                    <for list="${path}" param="path">
                        <sequential>
                            <var name="path" value="@{path}"/>                      
                            <include name="**/${path}/**/*.java" />
                        </sequential>
                    </for>
                </fileset>
            </batchtest>
        </junit>

您可以使用正则表达式

比如,

<batchtest haltonfailure="yes" todir="/test">
        <fileset dir="/build/classes/"
                includes="**/TestBlaBla.class" excludes="**/BlaBla.class" />
</batchtest>


我希望它对您有所帮助。

我实际上已经在使用文件集和正则表达式,如“*/${path}/.java。问题是$path是列表中的一个标记,因此必须循环列表才能检索所有路径值。如果您给出了确切的“目标”,我可以为ant脚本提供帮助。我认为这对您很有用,不需要一个列表路径列表来逐个添加。root/**将根下的所有路径添加到类路径中。不是吗?