代码之家  ›  专栏  ›  技术社区  ›  reprogrammer

为什么在使用swtbot时禁用菜单项?

  •  2
  • reprogrammer  · 技术社区  · 15 年前

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

    当我们改变的时候 org.eclipse.jdt.ui.actions.ExtractMethodAction 因此,“提取方法…”菜单项始终处于启用状态,我们的SWTBOT将通过。但是,SWTBOT应该让我们选择菜单项而不需要修改 org.eclipse.jdt.ui 插件。

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Aaron Digulla    15 年前

    也许您必须刷新所有挂起的事件才能启用菜单。在尝试单击菜单之前添加此循环:

    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