java - Junit 测试失败但构建成功(Ant)

标签 java junit ant

您好,我是使用 ant 的新手,我的导师希望我们使用它来完成一些任务,例如构建类、运行测试等

我真的很困惑,因为我无法让 junit 工作。我已经阅读了其他几篇文章和资源,但这让我更加困惑。

我得到的错误是:

Testsuite: SolutionTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec

Caused an ERROR
SolutionTest
java.lang.ClassNotFoundException: SolutionTest
  at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:340)

这是我的构建文件:

<project name="Solution" basedir="." default="main">
    <property name="src.dir"     value="src"/>
    <property name="build.dir"   value="build"/>

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

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

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
            <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
        </jar>
    </target>

    <target name="clean" depends="jar">
        <delete dir="${classes.dir}"/>
    </target>

    <target name="doc" depends="clean">
        <mkdir dir="${doc.dir}" />
        <javadoc destdir="${build.dir}/documentation" sourcefiles="${src.dir}/*.java" />
    </target>

    <target name="junit" depends="doc">
        <mkdir dir="${test.dir}" />
        <junit printsummary="yes" haltonfailure="no">
            <classpath location="." />

            <test name="SolutionTest" haltonfailure="no" todir="${test.dir}" outfile="result">
                <formatter type="plain" />
                <formatter type="xml" />
            </test>
        </junit>
    </target>

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

最佳答案

你应该使用 <junit haltOnFailure="yes" haltOnError="yes" ...> 如果你想让构建失败。

或者您可以使用 failurePropertyerrorProperty

<junit failureProperty="test.failure" errorProperty="test.error">
    <!-- your code here -->
</junit>

并验证是否设置了这些属性

<target name="main" depends="clean, junit, verifyNoError, verifyNoFailure"/>

<target name="verifyNoError" if="test.error">
    <fail message="JUnit test or tests errors."/>
</target>

<target name="verifyNoFailure" if="test.failure">
    <echo message="I'm here. Now what?"/>
    <fail message="JUnit test or tests failed."/>
</target>

关于java - Junit 测试失败但构建成功(Ant),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39479825/

相关文章:

java - Selenium Safari 使用 findElement.sendkeys 超时

java.lang.RuntimeException : Found conflicting getters for name isImportantForAccessibility on class androidx. appcompat.widget.AppCompatImageView

java - 如何在 Jsp 页面中使用 Ajax 和选择选项标签?

spring-mvc - ModelAndView 的内容类型

java - 如何在netbeans中组织不同的java源文件夹(用于测试)?

android - Cordova,在 Ubuntu 14.04 上添加 android 平台时出错

ant - 使用普通 ant 并以文件名作为参数为文件集中的每个文件调用一个任务(没有 contrib 任务,没有自己的任务)

java - 包含包含 .jar 的 libs 文件夹以供编译

java - ifPresent 返回一些东西 orElse

java - 在 JPA 中处理 ID 表的最佳解决方案是什么?