在 Eclipse和Ant中运行Junit测试时,我遇到了差异.这是场景:

所有东西都按照预期在Eclipse中运行,但是,当我通过我掀起的Ant构建脚本运行时,我无法获得准确的Junit报告.我对我们的测试运行器和测试用例进行了一些更改(简而言之,我在我的所有测试用例中添加了Test suite()方法),它返回一个新的Junit4TestAdapter,并让我们的自定义运行器执行RunNotifier.fireTestAssumptionFailed(Failure)而不是fireTestAssumption.现在,Ant中的一切运行正常,但在Eclipse中运行时,故障被标记为已通过.

是否有任何Eclipse文档可以准确解释它如何运行Junit测试?我基本上想知道Eclipse如何执行Junit测试,是否直接通过Ant运行,如果它使用Java与Junit接口等等.如果有人知道这个问题的实际解决方案,我也欢迎,但我会我真的很想尝试自己解决这个问题,我只需要一个正确的方向.

解决方法

要首先回答您的问题,如果您在Ant junit和Eclipse JUnit之间存在差异,那么它可能是类路径或环境问题.最简单的方法是找到在两者之间执行不同的测试并打印出系统属性,并从该方向开始工作.要尝试的另一件事是从Eclipse中运行ant脚本,看看是否有任何区别(因为环境会发生变化)

Eclipse不使用Ant来运行测试.

至于Eclipse如何运行JUnit测试,这里有一个快速概述.请注意:Eclipse JUnit插件中有一些深刻的魔力.

Eclipse有4个JUnit插件,默认情况下都安装在大多数配置中:

> org.eclipse.jdt.junit:git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.git
> org.eclipse.jdt.junit.core:git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.core.git
> org.eclipse.jdt.junit.runtime:git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.runtime.git
> org.eclipse.jdt.junit4.runtime:git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit4.runtime.git

这些是实际CVS存储库的git镜像.上次我尝试使用它们时,它们没有编译,但它们会给你代码,你至少可以将项目导入Eclipse并查看它们.

如果我们忽略配置页面,插件如何创建运行配置,JUnit视图本身的代码以及它如何找到要运行的相关测试,我们可以专注于它如何运行测试.

核心类是org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate和org.eclipse.jdt.internal.junit.runner.RemoteTestRunner. JUnitLaunchConfigurationDelegate读取启动配置并分叉将运行测试的JVM.这个新JVM的主要类是RemoteTestRunner.要运行的测试作为参数传递给分叉的JVM,作为单个测试或作为临时文件中的测试列表,如果您在项目上执行Run as JUnit.如果您正在调试,可以通过选中运行配置中的“调试时保持活动”复选框来保持此新JVM的活动状态.在这种情况下,JVM将保持不变,现有测试的重新运行将通过套接字发送.

RemoteTestRunner运行测试并通过套接字将结果传回Eclipse,然后Eclipse更新JUnit视图.其核心是org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference,它运行测试(对于JUnit 4),以及org.eclipse.jdt.internal.junit4.runner.JUnit4TestListener,它是这些的RunListener.试验. JUnit4TestListener扩展了RunListener,但是没有覆盖testAssumptionFailure,这可能是你的测试在Eclipse中传递的原因. RunListener.testAssumptionFailure是一个空方法,它什么都不做,所以你的通知将被忽略.

我将首先克隆git repos,将项目导入Eclipse并尝试完成代码.

java – Eclipse如何实际运行Junit测试?的更多相关文章

  1. xamarin.ios – 没有找到ViewController ::.ctor(System.IntPtr)的构造函数

    我有一个问题,我的Monotouch应用程序有时在收到内存警告后才会崩溃.请参见下面的堆栈跟踪.堆栈跟踪是正确的,因为指定的类缺少构造函数获取IntPtr参数.但是这是有意的,因为我在应用程序中根本不使用InterfaceBuilder.那为什么会这样呢?

  2. iOS8 / Swift和MobileVLCKit构建失败

    我正在努力用MobileVLCKit和cocoapods构建我的项目.在不添加任何VLCKit代码的情况下,我在模拟器或设备上构建应用程序时会出错.Pod文件:这是我得到的错误我的部署目标是8.0.我在Debug中将“BuildActiveArchitectureOnly”设置为YES.非常感谢你的帮助!解决方法除了做MukeshThawani所说的话;ChangeC++StandardLibra

  3. swift runtime type

    varv=1.0;println(v.dynamicType);//Swift.Double

  4. runTime(二)

    我们前面已经讲过一篇runtime原理,现在这篇文章主要介绍的是runtime是什么以及怎么用!首先,第一个问题,1》runtime实现的机制是什么,怎么用,一般用于干嘛?在我们平时编写的OC代码中,程序运行过程时,其实最终都是转成了runtime的C语言代码,runtime算是OC的幕后工作者比如说,下面一个创建对象的方法中,举例:OC:第二个问题runtime用来干什么呢??..这是我们学习runtime必须知道的函数!

  5. swift之用runtime实现字典转模型

    6、未完成的事情当类的属性与字典里的key值不一定的时候,出现的情况:字典里面的key是关键字的时候当类的属性是数组,并且数组里面要放自定义类的时候接着完成未完成的事情,首先当字典里的key值与属性不一致的时候,我弄了个映射一、解决类的属性与字典里的key值不一定的情况二、首先我们添加一个方法,这个方法的作用是把字典数组转成模型数组。

  6. Swift & the Objective-C Runtime

    Swift&theObjective-CRuntimeWrittenbyNateCook—January26th,2015EvenwhenwrittenwithoutasinglelineofObjective-Ccode,everySwiftappexecutesinsidetheObjective-Cruntime,openingupaworldofdynamicdispatchandasso

  7. Swift 调用 objc/runtime OBJC_ASSOCIATION_RETAIN

    我扩展一些类在Swift2.0工作与ReactiveCocoa3.0,但遇到了一些问题。我跟随科林·艾伯哈特的教程,和有复制粘贴一些他UIKit扩展逻辑结束对我的OSX应用程序。它所有的编译很好,除了此属性:UInt,这给了我以下的编译器错误。使用的未解析的标识符如何访问此属性?我一直对importObjectiveC和#import头文件,但没有什么似乎工作。解决方法1:这是实际上现在导入Swift作为枚举命名为objc_AssociationPolicy。或与枚举速记语法。

  8. Swift 中的 Runtime

    即使在SwiftAPP中没有一行Object-c的代码,每个APP也都会在Object-cruntime中运行,为动态任务分发和运行时对象关联开启了一个世界。更确切地说,可能在仅使用Swift库的时候只运行Swiftruntime。但是使用Objective-Cruntime这么长时间,我们也应该让他充分发挥其作用。方法交叉发生在initialize类方法调用时;替代的实现在nsh_viewWillAppear方法中:loadvs.initializeObjective-Cruntime理论上会在加载和初

  9. Swift是否和OC一样有runtime机制

    Swift是否和OC一样有runtime机制OC语言最大的特性无疑是其的动态性,可以利用OC的动态性能够获得一个类的方法和属性,从而实现灵活的程序,但Swift是否也包含了runtime机制呢?对于TestSwiftClass来说除testReturnTuple、testReturnVoidWithaCharacter两个方法外,其他的都获取成功了。可以知道@objc是用来将Swift的API导出给Objective-C和Objective-Cruntime使用的,如果你的类继承自Objective-c的

  10. Swift Runtime分析:还像OC Runtime一样吗?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部