配置 ant 来运行单元测试。图书馆应该在哪里?类路径应该如何配置?避免 ZipException

2024-01-11

我正在尝试使用 ant 运行我的 junit 测试。测试使用 JUnit 4 测试套件开始。如果我直接从 Eclipse 运行此测试,则测试会顺利完成。但是,如果我从 ant 运行它,那么许多测试都会失败,并一遍又一遍地重复此错误,直到 junit 任务崩溃。



    [junit] java.util.zip.ZipException: error in opening zip file
    [junit]     at java.util.zip.ZipFile.open(Native Method)
    [junit]     at java.util.zip.ZipFile.(ZipFile.java:114)
    [junit]     at java.util.zip.ZipFile.(ZipFile.java:131)
    [junit]     at org.apache.tools.ant.AntClassLoader.getResourceURL(AntClassLoader.java:1028)
    [junit]     at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.findNextResource(AntClassLoader.java:147)
    [junit]     at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.nextElement(AntClassLoader.java:130)
    [junit]     at org.apache.tools.ant.util.CollectionUtils$CompoundEnumeration.nextElement(CollectionUtils.java:198)
    [junit]     at sun.misc.CompoundEnumeration.nextElement(CompoundEnumeration.java:43)
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.checkForkedPath(JUnitTask.java:1128)
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:1013)
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:834)
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1785)
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:785)
    [junit]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    [junit]     at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    [junit]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [junit]     at java.lang.reflect.Method.invoke(Method.java:597)
    [junit]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    [junit]     at org.apache.tools.ant.Task.perform(Task.java:348)
    [junit]     at org.apache.tools.ant.Target.execute(Target.java:357)
    [junit]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
    [junit]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
    [junit]     at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    [junit]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    [junit]     at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    [junit]     at org.apache.tools.ant.Main.runBuild(Main.java:758)
    [junit]     at org.apache.tools.ant.Main.startAnt(Main.java:217)
    [junit]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    [junit]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

  

我的测试运行任务如下:



    <target name="run-junit-tests" depends="compile-tests,clean-results">
        <mkdir dir="${test.results.dir}"/>
        <junit failureproperty="tests.failed" fork="true" showoutput="yes" includeantruntime="false">
            <classpath refid="test.run.path" />
            <formatter type="xml" />
            <test name="project.AllTests" todir="${basedir}/test-results" />
        </junit>
        <fail if="tests.failed" message="Unit tests failed"/>
    </target>
  

我已验证类路径包含以下内容以及所有程序代码和库:



ant-junit.jar
ant-launcher.jar
ant.jar
easymock.jar
easymockclassextension.jar
junit-4.4.jar  

我尝试调试以找出它试图打开哪个 ZipFile,但没有成功,我尝试切换 includeantruntimefork 并且我尝试使用 ant -lib test/libs 其中 test/libs 包含 ant 和 junit 库。

非常感谢您收到有关导致此异常的原因或如何配置 ant 以成功运行单元测试的任何信息。

蚂蚁1.7.1(ubuntu),java 1.6.0_10,junit 4.4

Thanks.

更新 - 已修复发现我的问题了。我使用文件集而不是路径元素将类目录包含在路径中,这导致 .class 文件作为 ZipFiles 打开,这当然会引发异常。


发现我的问题了。我已使用以下命令将我的类目录包含在我的路径中fileset路径元素这导致 .class 文件作为 ZipFiles 打开,这当然会引发异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置 ant 来运行单元测试。图书馆应该在哪里?类路径应该如何配置?避免 ZipException 的相关文章

  • 使用 Junit5 对 LiveDataobserverForever 进行单元测试会导致 NullPointer 异常

    我正在使用 Android 数据绑定来监听实时数据更改 并且我想观察视图模型级别的更改 而不是观察片段 然后向视图模型发送回调 这observerForever很有趣 因为它对我有用 但是 当我运行测试时 出现以下错误 java lang
  • Spring控制器是线程安全的吗

    我遇到了这个控制器示例 想知道它是否是线程安全的 我特别想知道 gson 实例变量 import org springframework stereotype Controller import org springframework we
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • 如何为 Jackson 编写一个包罗万象的(反)序列化器

    当您提前知道类型时 编写自定义序列化器非常容易 例如 MyType一个人可以写一个MyTypeSerializer extends StdSerializer
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public

随机推荐

  • 让员工全力进出? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我的表如下 id time stamp evenid 1001 2017 09 05 09 35 00 1 in 1002 2017 09
  • AttributeError:使用与后端无关的 GUID 类型时,“UUID”对象没有属性“替换”

    我想使用 SQLAlchemy 1 1 5 在 Postgresql 数据库中拥有一个 uuid 类型的主键 id 并使用 pg8000 适配器连接到数据库 我用的是与后端无关的 GUID 类型 recipe http docs sqlal
  • 开始使用云计算

    我对云计算非常陌生 我想知道我可以在云上使用 LAMP 堆栈开发一个网站吗 以及使用哪种云 有没有开源云可以使用它 有点 您可以使用桉树 http open eucalyptus com downloads使用 LAMP 堆栈开发可在 Am
  • 无论有没有管道,如何在 k 折交叉验证后提取重要特征?

    我想构建一个使用交叉验证的分类器 然后从每个折叠中提取重要的特征 系数 以便我可以查看它们的稳定性 目前我正在使用 cross validate 和管道 我想使用管道 以便我可以在每个折叠内进行功能选择和标准化 我被困在如何从每个折叠中提取
  • 托管 COM 聚合

    据我了解 构建一个聚合现有 COM 对象的 COM 对象意味着在外部对象的 IUnknown QueryInterface 方法中实现重定向逻辑 我的问题是 如果您正在构建的对象是托管的 该怎么做 在托管对象上 IUnknown 没有显式实
  • 使用 ConstructorInfo 调用构造函数的反射

    在如下所示的非常简单的课程中 class Program public Program int a int b int c Console WriteLine a Console WriteLine b Console WriteLine
  • 如何在Python中读取cookie

    我是 python cgi 脚本的新手 我想用Python读取cookie 我尝试了以下代码 from urllib2 import Request build opener HTTPCookieProcessor HTTPHandler
  • Silverlight 中的最大图像 Uri 长度

    有谁知道 Silverlight 中的最大 URL 长度是多少 如果重要的话 版本 4 我知道它是 2048 并且对于 Firefox 来说基本上是无限的 我测试过的两个环境 但是对于长 Uri 来说 图像请求会失败 任何人都知道这个神奇数
  • 有没有办法监控并记录最近启动了哪些应用程序?

    我想知道用户在过去 例如 24 小时内 启动了哪些应用程序 这可能吗 不 不可能 至少在没有大量低级工作的情况下不可能 Android 不会按原样保留应用程序的使用历史记录
  • 将 NSDate 与 [NSDate 日期] 进行比较

    我试图强制用户使用日期选择器选择将来的日期 我显然使用了compare 方法 但是 当我执行以下代码时 即使它与 NSDate date 相同的日期 它也会告诉执行if语句 这是我的代码 if datePicker date compare
  • Google App Engine 版本号?

    App Engine 版本号如何运作 它们只是整数吗 我可以使用浮标吗 我可以重复使用旧版本号吗 从手册中 http code google com appengine docs python config appconfig html R
  • Excel VBA 调试器停止,没有错误或警告

    在尝试测试一些代码时 我遇到了一个我不记得以前遇到过的问题 当我单步执行代码时 它在 ClearContents 行之后停止 没有错误 没有警告 什么也没有 Public Sub CreateCurMth wsCur As Workshee
  • 如何在 jQuery 数组中查找 indexOf 元素?

    我有两个选择器 var allNodes a historyEntry var errorNodes a historyEntry error 我想找到第一个错误节点之前的节点 所以我需要找到第一个错误节点的索引 该怎么做 我尝试使用 in
  • 美丽的汤找不到标签

    我目前正在尝试使用 Python 3 6 中的请求和 BeautifulSoup 模块进行练习 并且遇到了一个问题 我似乎无法在其他问题和答案中找到任何信息 似乎在页面中的某个时刻 Beautifulsoup 停止识别标签和 ID 我正在尝
  • Javascript代码执行顺序奇怪

    我有一段 Javascript Coffeescript 似乎没有按顺序执行 console log list console log list card number if list card number console log MAT
  • 如何替换 pandas 数据框中拼写错误的单词

    我有 2 个熊猫数据框 其中包含拼写正确的单词列表 In df1 Out words 0 apple 1 phone 2 clock 3 table 4 clean 以及一个拼写错误的单词 In df2 Out misspelled 0 a
  • 安装了两个版本的 git,目前使用的是旧版本,如何切换?

    我需要一些帮助 我不久前安装了一个 git 版本 不知道如何 但没有使用自制程序 我刚刚安装了自制软件 我不知道如何使用新的而不是旧的 有想法吗 提前致谢 which a git usr local bin git usr bin git
  • SSIS 中的 OData 源组件未连接

    这是上一个问题的后续问题 SSIS 中的 OData 源组件挂起 https stackoverflow com questions 48026984 odata source component in ssis hanging Setup
  • 在输入按钮上使用 :first-letter 伪元素

    我正在尝试创建一个仅第一个字母带下划线的按 钮 显然我不能使用标签 那么我会用CSS实现它 通过使用伪元素 first letter 它在其他情况下工作得很好 但在按钮中不起作用 还有其他解决方案吗 由于您还没有分享您的代码 我将在这里进行
  • 配置 ant 来运行单元测试。图书馆应该在哪里?类路径应该如何配置?避免 ZipException

    我正在尝试使用 ant 运行我的 junit 测试 测试使用 JUnit 4 测试套件开始 如果我直接从 Eclipse 运行此测试 则测试会顺利完成 但是 如果我从 ant 运行它 那么许多测试都会失败 并一遍又一遍地重复此错误 直到 j