gpt4 book ai didi

eclipse - 在 Eclipse Indigo 中运行 JUnit 插件测试的正确目标平台?

转载 作者:行者123 更新时间:2023-12-02 10:00:28 26 4
gpt4 key购买 nike

对于我的 Eclipse 插件项目,我定义了以下目标平台:

<location includeAllPlatforms="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.equinox.executable.feature.group" version="3.5.0.v20110530-7P7NFUFFLWUl76mart"/>
<unit id="org.eclipse.rcp.sdk.id" version="3.7.1.M20110909-1335"/>
<unit id="org.eclipse.jdt.feature.group" version="3.7.1.r371_v20110810-0800-7z8gFcoFMLfTabvKsR5Qm9rBGEBK"/>
<unit id="epp.package.java" version="1.4.1.20110909-1818"/>
...

我的插件有 JUnit 插件测试(在同一个插件中)。如果我尝试使用 JUnit 启动配置 (org.eclipse.platform.ide) 运行它们,我会收到以下有关 junit 的控制台消息和一个异常:

!ENTRY org.eclipse.osgi 2 0 2011-12-16 13:00:35.206
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2011-12-16 13:00:35.206
!MESSAGE Bundle reference:file:/Users/stolz/ws-bucky/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jdt.junit4.runtime_1.1.200.v20110505-0800.jar was not resolved.
!SUBENTRY 2 org.eclipse.jdt.junit4.runtime 2 0 2011-12-16 13:00:35.206
!MESSAGE Missing required bundle org.junit_4.7.0.
!SUBENTRY 1 org.eclipse.osgi 2 0 2011-12-16 13:00:35.207
!MESSAGE Bundle reference:file:/Users/stolz/ws-bucky/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.junit4_4.8.1.v20100525/ was not resolved.
!SUBENTRY 2 org.junit4 2 0 2011-12-16 13:00:35.207
!MESSAGE Missing required bundle org.junit_4.8.1.

!SUBENTRY 1 org.eclipse.osgi 2 0 2011-12-16 13:00:35.234
!MESSAGE Bundle org.junit4_4.8.1.v20100525 [219] was not resolved.
!SUBENTRY 2 org.junit4 2 0 2011-12-16 13:00:35.235
!MESSAGE Missing required bundle org.junit_4.8.1.

!ENTRY org.eclipse.core.net 1 0 2011-12-16 13:00:39.889
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
Exception in thread "Plug-in Tests Runner" java.lang.IllegalArgumentException: Bundle "org.eclipse.jdt.junit4.runtime" not found. Possible causes include missing dependencies, too restrictive version ranges, or a non-matching required execution environment.
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.getClassLoader(RemotePluginTestRunner.java:77)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.readPluginArgs(RemotePluginTestRunner.java:93)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.init(RemotePluginTestRunner.java:83)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:61)
at org.eclipse.pde.internal.junit.runtime.PlatformUITestHarness$1.run(PlatformUITestHarness.java:47)
at java.lang.Thread.run(Thread.java:680)

使用默认的 JDT 安装,单元测试运行良好,只是我想为 Hudson 构建定义合适的目标平台。不用说,我尝试在不同的地方添加对两个违规平台的依赖项,但没有成功。

更新:哎呀,我把它与另一组测试搞混了;这里的这些不是 headless 测试,而是工作台测试。

另一个奇怪的是,有时在切换到默认 Eclipse 平台并返回到我的平台后第一次运行测试时我不会看到此错误。奇怪。

最佳答案

我不喜欢在这里自吹自擂,但我现在能想到的唯一解决方法(经过几个小时的实验)是将启动配置设置为 "all workspace and enabled target plugins"而不是使用功能或基于插件的启动。我认为这表明插件解析过程中存在一些可疑之处,Eclipse 默认情况下会正确处理,但当您开始限制可用功能/插件时则不然。

通过这一更改,它似乎可以在 Eclipse 和 Buckminster 中可靠地工作(使目标平台与原始问题中的有问题的设置保持不变(!))​​。所以我得出的结论是,目标平台原则上是正确的,它一定与发布有关。

感谢大家(至少@andrew-eisenberg,@PaulWebster)的意见!

关于eclipse - 在 Eclipse Indigo 中运行 JUnit 插件测试的正确目标平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com