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
如何为参数化jUnit测试用例编写ant脚本?_Ant_Junit_Parameterized - Fatal编程技术网

如何为参数化jUnit测试用例编写ant脚本?

如何为参数化jUnit测试用例编写ant脚本?,ant,junit,parameterized,Ant,Junit,Parameterized,我已经编写了参数化测试用例。当我通过ant运行它们时,我没有得到期望的结果。如果没有参数化,测试用例将按预期运行。请让我知道我哪里错了,我需要做什么改变 守则: import java.util.Arrays; import java.util.Collection; import junit.framework.TestCase; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; i

我已经编写了参数化测试用例。当我通过ant运行它们时,我没有得到期望的结果。如果没有
参数化
,测试用例将按预期运行。请让我知道我哪里错了,我需要做什么改变

守则:

import java.util.Arrays;
import java.util.Collection;
import junit.framework.TestCase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(value = Parameterized.class)
public class HelloWorldTest extends TestCase {

    int num1;
    int num2;
    int num3;

    public HelloWorldTest(int num1, int num2, int num3) {
        super();
        this.num1 = num1;
        this.num2 = num2;
        this.num3 = num3;
    }

    @Parameters
    public static Collection<Object[]> data() {
        Object[][] data = new Object[][] { { 1, 1, 2 }, { 2, 2, 5 } };
        return Arrays.asList(data);
    }

    @Test
    public void testSummationPositive() {
        Assert.assertEquals(num1 + num2, num3);
    }

}
导入java.util.array;
导入java.util.Collection;
导入junit.framework.TestCase;
导入org.junit.Assert;
导入org.junit.Test;
导入org.junit.runner.RunWith;
导入org.junit.runners.Parameterized;
导入org.junit.runners.Parameterized.Parameters;
@RunWith(值=参数化的.class)
公共类HelloWorldTest扩展了TestCase{
int num1;
int num2;
int num3;
公共HelloWorldTest(int num1、int num2、int num3){
超级();
this.num1=num1;
this.num2=num2;
此值为0.num3=num3;
}
@参数
公共静态收集数据(){
对象[][]数据=新对象[][{{1,1,2},{2,2,5};
返回数组.asList(数据);
}
@试验
public void testSummationPositive(){
Assert.assertEquals(num1+num2,num3);
}
}
蚂蚁脚本:

<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" basedir="." default="main">

    <property name="src.dir" value="src" />
    <property name="test.dir" value="test" />
    <property name="build.dir" value="build" />
    <property name="classes.dir" value="${build.dir}/classes" />
    <property name="jar.dir" value="${build.dir}/jar" />

    <property name="main-class" value="HelloWorld" />

    <property name="lib.dir" value="lib" />
    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar" />
    </path>

    <path id="application" location="${jar.dir}/${ant.project.name}.jar" />

    <target name="clean">
        <delete dir="${build.dir}" />
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}" />
        <javac srcdir="${src.dir}" destdir="${classes.dir}"
            classpathref="classpath" />
    </target>

    <target name="test-compile">
        <mkdir dir="${classes.dir}" />
        <javac srcdir="${test.dir}" destdir="${classes.dir}"
            classpathref="classpath" />
    </target>

    <target name="jar" depends="compile,test-compile">
        <mkdir dir="${jar.dir}" />
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}" />
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar,junit">
        <java classname="${main-class}" fork="true">
            <classpath>
                <path refid="classpath" />
                <path refid="application" />
                <path location="${jar.dir}/${ant.project.name}.jar"></path>
            </classpath>
        </java>
    </target>

    <target name="junit" depends="jar">
        <junit printsummary="yes">
            <classpath>
                <path refid="classpath" />
                <path refid="application" />
            </classpath>
            <batchtest fork="yes">
                <fileset dir="${test.dir}" includes="*Test.java" />
            </batchtest>
        </junit>
    </target>

    <target name="clean-build" depends="clean,jar" />

    <target name="main" depends="clean,run" />
</project>


因为您使用的是JUnit4,所以不需要
扩展测试用例
声明。尝试删除该选项,看看测试是否正常运行。

您遇到了什么问题?当ant试图调用JUnit时,是否会收到错误消息?JUnit测试失败了吗?这里有两个测试数据。。。但在建筑中,它只展示了一个。即使是成功的场景,它也会显示失败。Ant的输出是什么?谢谢,我犯了一个错误。删除扩展测试用例后,它工作了