使用SWTBot时为什么禁用菜单项?

时间:2010-09-14 05:01:06

标签: eclipse unit-testing user-interface gui-testing swtbot

我使用a GUI test编写SWTBot来测试Extract Method重构。我使用editor.selectRange()来选择要提取到方法中的语句。但是,当我运行单元测试时,Extract Method重构菜单项被禁用。因此,SWTBot无法调用重构。

当我们更改org.eclipse.jdt.ui.actions.ExtractMethodAction以便始终启用“Extract Method ...”菜单项时,我们的SWTBot会通过。但是,SWTBot应该让我们选择菜单项而不破解org.eclipse.jdt.ui插件。

包含上述单元测试的整个项目是available at github。我还在the Eclipse forum for SWTBotSWTBot bug tracking system上报告了此问题。但是,我们还没有收到论坛的解决方案。

1 个答案:

答案 0 :(得分:1)

也许您必须刷新任何待处理事件才能启用菜单。在尝试单击菜单之前添加此循环:

while(Display.getDefault().readAndDispatch());

[编辑]我认为问题是菜单是通过扩展点或条件启用的。检查菜单或基础操作的所有plugin.xml文件以及启用它的条件。

要触发条件,您可能必须通知工作台有关新选择的信息。查看http://www.eclipse.org/articles/Article-WorkbenchSelections/article.htmlhttp://www.eclipse.org/articles/article.php?file=Article-action-contribution/index.html