gpt4 book ai didi

java - Ant 的新手,JUnit 的 ClassNotFoundException

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:30 25 4
gpt4 key购买 nike

我已经为此绞尽脑汁了一段时间(用谷歌搜索了一堆,查看了其他相关的 SO 帖子但无济于事)。我有一个由两个文件组成的 Java 程序,LogicTestsTests 包含大约一百个 JUnit 测试,我通过调用 javac *.java 然后调用 java org.junit 获得了 100% 的成功率。 runner.JUnitCore 测试。然而,当我用一个简单的 ant -verbose test 运行我的 build.xml 时(为了跟踪输出,因为我是新手),我得到以下信息输出:

[junit] Testsuite: Tests
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test: Caused an ERROR
[junit] Tests
[junit] java.lang.ClassNotFoundException: Tests
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Class.java:247)
[junit]
[junit]
[junit] Test Tests FAILED

BUILD SUCCESSFUL

我的build.xml如下:

<project name="ETL_Automation" default="test" basedir=".">

<path id="classpath.base">
</path>

<path id="classpath.test">
<pathelement location="${basedir}/mysql-connector-java-5.1.18-bin.jar" />
<pathelement location="${basedir}/junit-4.10.jar"/>
<path refid="classpath.base" />
</path>

<target name="compile">
<javac srcdir="${basedir}">
<classpath refid="classpath.test"/>
</javac>
</target>

<target name="test" depends="compile">
<junit fork="no">
<classpath refid="classpath.test" />
<formatter type="brief" usefile="false" />
<batchtest>
<fileset dir="${basedir}/" includes="Tests.class" />
</batchtest>
</junit>
</target>

<target name="clean" depends="test">
<delete>
<fileset dir="${basedir}" includes="*.class"/>
</delete>
</target>

目录结构非常简单。 Tests.javaLogic.javajunit-4.10.jarmysql-connector-java-5.1.18-bin。 jarbuild.xml 和引用的 .properties 文件都在同一个文件夹中。 Java 代码引用了外部文件,但这些文件与此特定问题无关。我不知道类路径是否可能是导致此问题的原因(因为我非常确信我目前拥有的东西不起作用)。

谢谢!

最佳答案

您需要将包含 Tests.class 的目录添加到 classpath.tests 类路径(即 ${basedir} 中你的设置)

尝试:

<path id="classpath.test"> 
<pathelement location="${basedir}/mysql-connector-java-5.1.18-bin.jar" />
<pathelement location="${basedir}/junit-4.10.jar"/>
<pathelement location="${basedir}" />
<path refid="classpath.base" />
</path>

关于java - Ant 的新手,JUnit 的 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com