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

我已经使用SWTBot编写了一个GUI测试来测试Extract Method重构。我使用
editor.selectRange()
选择要提取到方法中的语句。但是,当我运行单元测试时,Extract Method重构菜单项被禁用。因此,SWTBot无法调用重构。 当我们改变
org.eclipse.jdt.ui.actions.ExtractMethodAction
以便始终启用“Extract Method ...”菜单项时,我们的SWTBot会通过。但是,SWTBot应该让我们选择菜单项而不用黑客攻击
org.eclipse.jdt.ui
插件。 包含上述单元测试的整个项目可在github上获得。我还在Eclipse论坛上报告了SWTBot和SWTBot错误跟踪系统的问题。但是,我们还没有收到论坛的解决方案。     
已邀请:
也许您必须刷新任何待处理事件才能启用菜单。在尝试单击菜单之前添加此循环:
while(Display.getDefault().readAndDispatch());
[编辑]我认为问题是菜单是通过扩展点或条件启用的。检查所有plugin.xml文件以获取菜单或基础操作以及启用它的条件。 要触发此条件,您可能必须通知工作台有关新选择的信息。查看http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html和http://www.eclipse.org/articles/article.php?file=Article-action-contribution/index.html     

要回复问题请先登录注册