使用Ant运行JUnit测试时出现ClassNotFoundException

乌贼

我试图使用Ant脚本运行一些JUnit测试。我可以在Eclipse中运行它们,但是使用Ant进行处理时会遇到问题。

我有一个简单的类,称为Calculator,它进行一些计算,这是我的类:

计算器.java

package CalculatorSrc;

public class Calculator {

    public double add(double n1, double n2){
        return n1+n2;
    }   

    //...

}

然后,我还有另一个类来测试我的方法,例如:

TestCalculator.java

package CalculatorTests;

import static org.junit.Assert.*;

import org.junit.*;

import CalculatorSrc.Calculator;

public class TestCalculator {

    @Test
    public void testAdd(){
        Calculator calc = new Calculator();
        double result = calc.add(10, 50);
        assertEquals(60, result, 0);
    }   

    //...

}

我的项目目录是这样的:

项目目录

最后,运行JUnit测试的Ant脚本是这样的:

<property name="build.classes.dir" location="build/classes"/>

<property name="class.src.dir" location="src/CalculatorSrc"/>
<property name="tests.src.dir" location="src/CalculatorTests"/>
<property name="reports.dir" location="reports"/>

<path id="classpath.base" />

<path id="test.classpath">
    <pathelement location="${class.src.dir}"/>
    <pathelement location="${tests.src.dir}"/>
    <pathelement location="${build.classes.dir}"/>
    <pathelement location="tools/JUnit/junit-4.12.jar"/>
    <pathelement location="tools/JUnit/hamcrest-core-1.3.jar"/>
    <pathelement location="tools/JUnit/ant-junit-1.9.4.jar"/>
</path>

<target name="build">
    <antcall target="test-compile"/>
    <antcall target="test"/>
</target>

<target name="test-compile">
    <javac includeantruntime="false" srcdir="${class.src.dir}" destdir="${build.classes.dir}" debug="true">
        <classpath refid="classpath.base"/>
    </javac>
    <javac includeantruntime="false" srcdir="${tests.src.dir}" destdir="${build.classes.dir}" debug="true">
        <classpath refid="test.classpath"/>
    </javac>
</target>

<target name="test">
    <junit haltonfailure="no" failureproperty="failed">
        <classpath>
            <path refid="test.classpath"/>
            <pathelement location="${build.classes.dir}"/>
        </classpath>
        <formatter type="xml"/>
        <batchtest fork="yes" todir="${reports.dir}">
            <fileset dir="${tests.src.dir}" includes="**/*Test*.java"/>
        </batchtest>
    </junit>
    <fail message="TEST FAILURE" if="failed"/>
</target>

当我使用Jenkis运行Ant脚本时,我的构建失败...如果我去检查创建的xml文件,我会看到错误ClassNotFoundException ...

在此处输入图片说明

我究竟做错了什么?

编辑:

这是我构建项目时Jenkins输出的一些印刷品:

如您在下一个屏幕快照中所见,jenkins可以找到我的build.xml ...

詹金斯建立

这是我的错误:

在此处输入图片说明

我的build.xml的第57行是<antcall target="test"/>,第121行是<fail message="TEST FAILURE" if="failed"/>

斯蒂芬·比克纳(Stefan Birkner)

您使用的目录和软件包错误。src/CalculatorSrcsrc/CalculatorTests都是源文件夹,但是在Eclipse中,您将父目录src用作源文件夹。该怎么办:

  • 在Eclipse中更改项目设置:src/CalculatorSrcsrc/CalculatorTests都是源文件夹
  • Calculator.javaCalculatorTest.java(每个文件的第一行)中删除软件包声明。
  • import CalculatorSrc.Calculator;从中删除线CalculatorTest.java

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Maven 中运行 JUnit 测试时出现 ClassNotFoundException

ClassNotFoundException-运行ant-junit时

使用Ant运行Android JUnit测试:ClassNotFoundException:org.junit.Test

运行测试时,Ant + JUnit = ClassNotFoundExceptions?

尝试使用Spring运行jUnit测试时出现NoSuchFieldError

使用Ant仅运行特定的JUnit测试

运行junit测试时出现ZipException

Apache Ant:使用Junit时出现NoClassDefFoundError

在Eclipse中运行junit测试时发生ClassNotFoundException

ClassNotFoundException试图在IntelliJ中使用Maven运行JUnit测试

用于运行junit测试的Ant脚本,显示java.lang.ClassNotFoundException

运行Gradle JUnit测试时出现“地址已在使用中:绑定”异常

使用JUnit运行黄瓜测试时出现java.lang.NoClassDefFoundError异常

使用play2框架运行JUnit测试时,mysql连接出现问题

如何使用参数在ant中运行特定的junit测试?

使用ivy的ant 1.9中的junit任务失败,出现junit.framework.AssertionFailedError:未找到测试

如何运行所有JUnit测试并在Ant中失败时停止运行?

Ant,运行所有jUnit测试

运行JUnit测试并正确分叉JVM(Ant)

使用MockMvc和JUnit 5测试LocalDate时出现AssertionError

使用 ApplicationContext 运行 JUnit 测试时禁用 Hazelcast 实例

在SpringBoot项目上使用DBUNIT运行Junit测试时出错

如何使用Ant在类别/套件中运行所有JUnit测试?

使用SBT运行JUnit测试

使用IntelliJ运行JUnit测试

尝试运行JUnit测试时,为什么会出现“在使用ClassLoader搜索持久性归档时抛出异常”错误?

使用@Configuration时运行单元测试时出现NoSuchBeanDefinitionException

使用Gradle任务运行单元测试时出现NoClassDefFoundError

使用Cucumber JVM运行测试时出现UndefinedStepException