与 Ant 集成的 Junit 测试因 ClassNotFoundException 失败

2024-06-19

我对我的项目进行了 JUnit 测试,可以使用 Eclipse 正确运行。

所以,现在我尝试将这些测试与 ant 任务集成。为此,我编写了以下 ant 脚本:

<path id="classpath-test">
    <pathelement path="." />
    <pathelement path="${classes.home}" />
    <fileset dir="${lib.home}" includes="*.jar" />
    <fileset dir="${libtest.home}" includes="*.jar" />
</path>

    <target name="compile" ... > // compiles src code of the project

<target name="compile-tests" depends="compile">
    <javac  srcdir="${test.home}"
            destdir="${testclasses.home}" 
            target="1.5"
            source="1.5" 
            debug="true"
        >
        <classpath refid="classpath-test" />
    </javac>

    <copy todir="${testclasses.home}">
        <fileset dir="${test.home}">
            <exclude name="**/*.java"/>
        </fileset>
    </copy>
</target>

<target name="unit-test" depends="compile-tests">
    <junit printsummary="false" fork="off" haltonfailure="true">
        <classpath refid="classpath-test" />

        <formatter type="brief" usefile="false" />

        <test name="com.test.MyTest" />

        <!--<batchtest todir="${reports.dir}" >
            <fileset dir="${testclasses.home}" >
                <exclude name="**/AllTests*"/>
                <include name="**/*Test.class" />
            </fileset>
        </batchtest>-->
    </junit>
</target>

目录 ${libtest.hom} 包含 junit-4.8.1.jar 和 hamcrest-core-1.1.jar。

当我启动以下命令:ant unit-test 时,MyTest 的执行失败并显示以下输出:

unit-test:
[junit] Testsuite: com.test.MyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test:  Caused an ERROR
[junit] com.test.MyTest
[junit] java.lang.ClassNotFoundException: com.test.MyTest
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
[junit]     at java.lang.Class.forName0(Native Method)
[junit]     at java.lang.Class.forName(Class.java:247)
[junit]
[junit]

这很奇怪,因为 com.test.MyTest 很好地位于 ant 脚本中指向我的任务 junit 的类路径中。有人会有解决这个问题的想法吗?

感谢您的帮助。

Sylvain.


The ${testclasses.home}目录不在类路径上<junit> task.

我认为这是类文件的位置com.test.MyTest lives.

这是修改后的单元测试目标:

<target name="unit-test" depends="compile-tests">
    <junit printsummary="false" fork="off" haltonfailure="true">
        <classpath>
          <path refid="classpath-test"/>
          <fileset dir="${testclasses.home}"/>
        </classpath>

        <formatter type="brief" usefile="false" />

        <test name="com.test.MyTest" />

        <!--<batchtest todir="${reports.dir}" >
            <fileset dir="${testclasses.home}" >
                <exclude name="**/AllTests*"/>
                <include name="**/*Test.class" />
            </fileset>
        </batchtest>-->
    </junit>
</target>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 Ant 集成的 Junit 测试因 ClassNotFoundException 失败 的相关文章

随机推荐

  • 如果使用 jQuery 添加字段,Rails 嵌套表单属性不会保存

    我有一个带有嵌套表单的 Rails 表单 我使用 Ryan Bates 嵌套表单和 jquery 教程 并且就动态添加新字段而言 它工作得很好 但是当我提交表单时 它不会保存任何关联的属性 但是 如果在表单加载时构建部分 则它会很好地创建属
  • @OneToMany 与 @JoinTable 错误

    我试图理解 OneToMany with JoinTable 对于这样的场景 我正在使用 JPA 2 1 Hibernate 5 0 4 和 Oracle 11 XE 当我打电话时userDao save user 下面的代码 我有 jav
  • 将其从 Google Maps API v2 转换为 v3

    这适用于 Google Maps API v2 现在如何将其转换为 API v3 谢谢 Radar 1 Overlay Tiles var radar layer new GTileLayer new GCopyrightCollectio
  • 从内存地址创建python对象(使用gi.repository)

    有时我需要调用仅存在于 C 中的 gtk gobject 函数 但返回一个具有 python 包装器的对象 之前我使用过基于 ctypes 的解决方案 效果很好 现在我从 PyGtk import gtk 切换到 GObject intro
  • DynamodB:如何更新排序键?

    该表有两个键 filename 分区键 和eventTime 排序键 我要更新eventTime对于某些filename Tried put item and update item 发送相同的filename与新的eventTime但这些
  • 如何通过aws-sdk(javascript或node)获取s3存储桶大小

    我尝试使用 javascript nodejs aws sdk 查找 获取 s3 存储桶信息 但没有找到这样的 api 如何通过 aws sdk javascript 或 node api 获取 s3 存储桶大小 信息 每天一次向 Clou
  • JavaScript 中的“new”关键字是什么?

    The newJavaScript 中的关键字第一次遇到时可能会很混乱 因为人们倾向于认为 JavaScript 不是面向对象的编程语言 它是什么 它解决什么问题 什么时候合适 什么时候不合适 它做了 5 件事 它创建一个新对象 这个对象的
  • 如何实现通用 switch/case,它也适用于一般 C++ 类型并且语法相似?

    在 C C 中 switch case仅将整型类型与编译时常量进行比较 不可能使用它们来比较用户 库定义的类型 例如std string与运行时值 为什么 switch 语句不能应用于字符串 https stackoverflow com
  • 在 Samsung Galaxy S 上调用 RingTonePreference 时出现 NullPointerException

    在 Samsung Galaxy 上调用 RingTonePreference 时 我收到以下消息 在其他手机上一切正常 java lang RuntimeException Unable to start activity Compone
  • ASP.NET Web API ActionFilter 示例

    我对整个 MVC 很陌生 正在考虑使用 ASP NET Web API 重新实现一些 WCF 服务 作为其中的一部分 我想实现一个操作过滤器来记录所有操作和异常以及计时 因此我认为我应该从操作过滤器开始 但是过滤器没有被调用 public
  • 如何识别 Java 中的不可变对象

    在我的代码中 我正在创建一个对象集合 这些对象将由各种线程以只有在对象不可变的情况下才安全的方式访问 当尝试将新对象插入到我的集合中时 我想测试它是否是不可变的 如果不是 我将抛出异常 我能做的一件事是检查一些众所周知的不可变类型 priv
  • 调试VBA、定位问题及排查方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有哪些方法调试VBA代码 具体来说 单步执行代码 断点和停止命令 TheDebug command 当地人和观察窗 调用栈 调试 VB
  • firebase推送通知错误Spring Boot服务器端

    我正在尝试从 Spring Boot 服务器端发送通知到客户端 android 服务器运行良好 一切都很好 2020 09 01 08 13 07 691 INFO 18941 restartedMain e DevToolsPropert
  • ELMAH 将其数据保存在哪里?

    我刚刚安装了 ELMAH MVC 更多信息here http nuget org packages Elmah MVC 并且想知道其数据保存在哪里 我读到您可以选择设置数据库进行存储 但似乎默认安装使用 内存中 它是如何工作的 如果我回收应
  • 使用 npm 作为构建工具连接文件

    我最近发现我可以使用 npm 作为任务运行程序 而不是 gulp 或 grunt 到目前为止 一切都很棒 lint stylus jade uglify watch 等 但串联部分 我似乎无法实现 gulp 是这样的 gulp task s
  • 将 C 转换为 Swift:向 UITextField 添加放大镜图标

    如何在左侧添加一个放大镜图标UITextField 我找到了类似问题的答案here https stackoverflow com questions 11811705 where can i get the magnifying glas
  • 捆绑包安装无法离线工作

    我得到了这个问题 我想已经安装了捆绑器 因为我无法在 RoR 中创建应用程序时捆绑安装 也无法直接在项目中捆绑安装 如果您遇到任何问题并找到解决方案 请帮助我 enter code here run bundle install Fetch
  • PHP比较两个字符串的随机位置

    PHP比较两个字符串 示例我得到了一串数字 1 2 2 1 and another is 2 1 2 1 结果是 true 因为它只是 1 2 2 1 和 2 2 1 1 的位置洗牌 但如果该值为 1 2 2 2 and another i
  • 输入和文本字段中的背景颜色

    我想更改表单文本和输入字段中的颜色背景 但是当我这样做时 它也会影响提交按钮 是否可以通过其他不影响按钮的方式来完成 我用过这段代码 input textarea background color d1d1d1 input type tex
  • 与 Ant 集成的 Junit 测试因 ClassNotFoundException 失败

    我对我的项目进行了 JUnit 测试 可以使用 Eclipse 正确运行 所以 现在我尝试将这些测试与 ant 任务集成 为此 我编写了以下 ant 脚本