首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ant Junit任务抛出java.lang.ClassNotFoundException

Ant Junit任务抛出java.lang.ClassNotFoundException
EN

Stack Overflow用户
提问于 2018-08-03 17:52:53
回答 2查看 142关注 0票数 0

我有一个简单的Junit测试,它总是抛出一个java.lang.ClassNotFoundException。下面是文件夹结构

代码语言:javascript
运行
复制
project:
|__build.xml
|__hamcrest-core-1.3.jar
|__junit.jar
|__src:
|  |__Simple.java
|__bin:
   |__Simple.class

代码语言:javascript
运行
复制
Simple.java
import org.junit.Test;

public class Simple {
    @Test
    public void check() {
        assert (true);
    }
}

代码语言:javascript
运行
复制
build.xml

<?xml version="1.0"?>
<project name="Ant-Test" default="main">
    <target name="main">
        <junit printsummary="yes" fork="yes" haltonfailure="no">
            <classpath path="hamcrest-core-1.3.jar" />
            <classpath path="junit.jar" />
            <formatter type="plain" />
            <batchtest fork="yes" todir="docs">
                <fileset dir="bin">
                    <include name="**.class" />
                </fileset>
            </batchtest>
        </junit>
    </target>
</project>

代码语言:javascript
运行
复制
Error:
Testsuite: Simple
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec
Caused an ERROR
Simple
java.lang.ClassNotFoundException: Simple
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:292)

请帮我找出这个错误的原因。脚本能够找到测试用例,但在最后抛出了一个错误。

EN

回答 2

Stack Overflow用户

发布于 2018-08-03 22:07:07

请尝试使用以下文件集标记:

代码语言:javascript
运行
复制
<fileset dir="bin">                  
    <include name="**.java" />
</fileset>
票数 0
EN

Stack Overflow用户

发布于 2018-08-06 08:20:18

我不确定junit任务是否允许多个classpath节点,但不管怎样,最好只有一个。此外,您的类路径缺少classes目录。正确的声明应该是这样的:

代码语言:javascript
运行
复制
<junit ...>
    <classpath>
        <pathelement path="bin"/>
        <pathelement location="hamcrest-core-1.3.jar"/>
        <pathelement location="junit.jar"/>
    </classpath>
    ...
</junit>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51669986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档