2

SWTBotを使用して Extract Method リファクタリングをテストする GUI テストを作成しました。メソッドに抽出するステートメントを選択するために使用します。しかし、単体テストを実行すると、Extract Method リファクタリング メニュー項目が無効になります。したがって、SWTBot はリファクタリングの呼び出しに失敗します。editor.selectRange()

「Extract Method...」メニュー項目が常に有効になるように変更org.eclipse.jdt.ui.actions.ExtractMethodActionすると、SWTBot がパスします。しかし、SWTBot は、org.eclipse.jdt.uiプラグインをハッキングすることなく、メニュー項目を選択できるようにする必要があります。

上記の単体テストを含むプロジェクト全体はgithub で入手できます。SWTBotおよびSWTBot バグ追跡システムの Eclipse フォーラムでもこの問題を報告しました。しかし、フォーラムから解決策を受け取っていません。

4

1 に答える 1

1

メニューを有効にするには、保留中のイベントをフラッシュする必要があるかもしれません。メニューをクリックする前に、次のループを追加します。

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を確認してください

于 2010-10-06T14:54:46.140 に答える