java - JUnit 插件测试忽略目标平台

标签 java eclipse junit

我使用了 tycho-eclipse-plugin-archetype 中的原型(prototype)创建一个带有工作集成测试项目的简单 Eclipse 插件。但……事实并非如此。

当我作为“JUnit 插件测试”启动任何测试时,出现以下异常:

!ENTRY org.eclipse.osgi 2 0 2016-01-07 14:43:35.734
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2016-01-07 14:43:35.734
!MESSAGE Bundle initial@reference:file:../../../../../../../Users/MyName/.eclipse/org.eclipse.platform_4.5.1_2043537226_win32_win32_x86_64/plugins/org.eclipse.pde.junit.runtime_3.4.500.v20150423-1241.jar/ was not resolved.
!SUBENTRY 2 org.eclipse.pde.junit.runtime 2 0 2016-01-07 14:43:35.734
!MESSAGE Missing required bundle org.eclipse.core.runtime_[3.11.0,4.0.0).

(以及其他插件的一些类似消息。)

这很奇怪,因为我的目标平台包含 org.eclipse.pde.junit.runtime 3.4.300,而不是 3.4.500,它需要 org.eclipse.core.runtime 版本 [3.3.0,4.0.0)。测试用例的运行配置与该版本一致并证明“未检测到问题。”

因此,从路径包含 "/org.eclipse.platform_4.5.1" 的事实来看,我假设它采用当前正在运行的 Eclipse 目标平台,即使工作区和运行配置中还有另一组。

如何更改 JUnit 插件测试以采用当前 Activity 的目标平台?

最佳答案

它适用于 Eclipse 4.4.2 (Luna),因此它可能是 Eclipse Mars 的“功能”之一。

添加: As explained here ,当 Eclipse 在工作区的目标平台中找不到应用程序文件夹中的插件时,它会使用它们。当工作区和 Eclipse 目标平台不同时,这会导致测试失败。解决方案是 a) 使用相同的 Eclipse 版本进行开发和项目,或者 b) 使用 Crystal 球找出缺少哪些测试插件并将它们添加到项目的目标平台。

关于java - JUnit 插件测试忽略目标平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657010/

相关文章:

java - Postgres UUID 和 Hibernate → 未找到列

java - Java中的内存映射大文件

java - 提取 "="之后和 "&"之前的内容,java中的正则表达式

java - Hibernate JUnit 测试持久化 vs. jsf live 持久化

junit - 使用assertTrue而不是assertNull时丢失分支

java - JUnit @Ignore 所有其他测试(@IgnoreOther?)

java - 如何构造JAVA递归方法Dequeue

c++ - 如何在 Eclipse 中调试 R 包(使用 C 和 C++ 代码)?

java - A[] templE[]) new Object[capacity] 中的 "Object"是什么意思

php - Eclipse:如何将 *.js.php 文件突出显示为 JavaScript