Buckminster:运行JUnit Plugin测试无头

时间:2011-10-19 14:11:59

标签: eclipse junit headless buckminster

我有一个简单的Hudons / Buckminster设置,其中Hudson从SVN检出四个Java插件项目,从Helios下载站点实现(?)org.eclipse.platform,在其中一个项目中运行一个小的ant-job对于JFlex等(Buckminster没有“看到”配置外部ANT构建器?,然后Buckminster构建工作区。

Java插件项目还包含与插件具有相同ID的feature.xml文件(到目前为止,我们一直在使用基于ant的构建过程)。

我可以成功perform ...#site.p2前两个,但第三个因某些原因失败(但这不是问题)。

现在,其中一个项目有JUnit测试,我可以使用无头JUnit插件启动配置从Eclipse Indigo运行。注意:由于某种原因,(因为我们的功能不在单独的功能项目中?),启动配置上的依赖关系生成检查被破坏,我手动配置了所需的最小插件集。

现在,我在Buckminster中运行此启动配置:

junit -l com.pon.ent/junit.launch

并获得:

  

错误:检测到插件验证错误:   {com.pon.ent_0.0.0.qualifier = [Lorg.eclipse.osgi.service.resolver.ResolverError; @ c986d2,org.eclipse.ui.views_3.5.1.M20110202-0800 = [Ljava.lang.Object; @ b27cca ,   org.eclipse.ltk.core.refactoring_3.5.100.v20100526-0800 = [Ljava.lang.Object; @ 1ec391,   org.eclipse.ui.navigator.resources_3.4.201.M20100707-0800 = [Ljava.lang.Object; @ 1b9a026,   org.eclipse.debug.ui_3.6.1.v20100901_r361 = [Ljava.lang.Object; @ 1c126da,   org.eclipse.ui.ide_3.6.1.M20100825-0800 = [Ljava.lang.Object; @ 1dde560,   org.eclipse.team.ui_3.5.101.R36x_v20100825-0800 = [Ljava.lang.Object; @ fe10f1,   org.eclipse.ui.ide_3.6.2.M20101201-0800 = [Ljava.lang.Object; @ a68c8,   org.eclipse.jdt.ui_3.6.1.r361_v20100825-0800 = [Ljava.lang.Object; @ 16535fa,   org.eclipse.debug.ui_3.6.3.v20101201_r362 = [Ljava.lang.Object; @ 1baec4c,   org.eclipse.ui.navigator.resources_3.4.202.M20101124-0800 = [Ljava.lang.Object; @ ef965e,   org.eclipse.jdt.debug.ui_3.5.0.v20100602-0830 = [Ljava.lang.Object; @ 17916a0,   org.eclipse.jdt.debug.ui_3.5.2.v20100928a_r362 = [Ljava.lang.Object; @ bc7bc0,   org.eclipse.equinox.p2.repository_2.0.2.R36x_v20110111-1500 = [Lorg.eclipse.osgi.service.resolver.ResolverError; @ 607cad,   org.eclipse.compare_3.5.100.I20100526-0800 = [Ljava.lang.Object; @ 997c85,   org.eclipse.ui.views_3.5.0.I20100527-0800 = [Ljava.lang.Object; @ be0e6e,   org.eclipse.ui_3.6.1.M20100826-1330 = [Ljava.lang.Object; @ 1a5688d,   org.eclipse.team.ui_3.5.102.R36x_v20110203-1036 = [Ljava.lang.Object; @ 73102f,   org.eclipse.jdt.ui_3.6.2.r362_v20110203 = [Ljava.lang.Object; @ 2baa00,   org.eclipse.equinox.p2.metadata.repository_1.1.0.v20100513 = [Lorg.eclipse.osgi.service.resolver.ResolverError; @ a5f472,org.eclipse.ltk.core.refactoring_3.5.101.r362_v20101117-0800 = [Ljava] .lang.Object; @ 153a539,   org.eclipse.swt_3.6.1.v3655c = [Ljava.lang.Object; @ 8445f7,   org.eclipse.ui_3.6.2.M20110203-1100 = [Ljava.lang.Object; @ d8573,   org.eclipse.ui.workbench_3.6.1.M20100826-1330 = [Ljava.lang.Object; @ 1b4776a,   org.eclipse.compare_3.5.101.R36x_v20100929-0800 = [Ljava.lang.Object; @ 10bdf62,   org.eclipse.swt_3.6.2.v3659c = [Ljava.lang.Object; @ 76b51c,   org.eclipse.ui.workbench_3.6.2.M20110210-1200 = [Ljava.lang.Object; @ 16c6a89}       警告:进程/usr/jdk/instances/jdk1.6.0/bin/java(2010年10月19日9:02:53 PM)以退出状态1终止。

鉴于像org.eclipse.ui.views这样的东西显示为匹配的,例如

  

的org.eclipse.ui.views:osgi.bundle / [3.5.1.M20110202-0800,3.5.1.M20110202-0800]:   找到匹配org.eclipse.ui.views:osgi.bundle $ 3.5.1.M20110202-0800

我有点不知道实际上是什么遗失/出错了。我没有使用任何产品是目标平台,其他来自我从获取org.eclipse.platform的cquery获得的,以及我的插件的依赖性解析。

感谢任何解释!

更新

我已经改变了一些东西,现在使用Indigo,在Buckminster的目标平台中包含org.eclipse.rcp,并将JUnit的启动从插件转换为功能,事情已经缩小了:

Waiting for jobs to end
junit '-l' 'eu.hatsproject.absplugin/junit.launch' '-o' 'eu.hatsproject.absplugin/junit.xml' '--maxTimeAwaitJunitReport' '20'
WARN:  Process /usr/jdk/instances/jdk1.6.0/bin/java (Oct 21, 2011 6:04:32 PM) terminated with exit status 1.
Doing full workspace refresh

1 个答案:

答案 0 :(得分:1)

经验教训:

  • 不混合搭配:使用Indigo运行Buckminster 3.7导入,而不是Helios更新站点(不确定,也许我还做了别的错误)
  • --stderr --stdout放入Buckminster junit调用!

问题在于启动配置包含特定于平台的-X - 交换机,因为我是从MacOS导出它并在Solaris上运行它。当你不使用上述开关时,我不知道这些消息会在哪里结束。