Почему пункт меню отключен при использовании SWTBot? - PullRequest
2 голосов
/ 14 сентября 2010

Я написал тест GUI с использованием SWTBot для проверки рефакторинга Extract Method.Я использую editor.selectRange(), чтобы выбрать оператор для извлечения в метод.Но когда я запускаю модульный тест, пункт меню рефакторинга Extract Method отключается.Таким образом, SWTBot не может вызвать рефакторинг.

Когда мы изменяем org.eclipse.jdt.ui.actions.ExtractMethodAction, так что пункт меню «Извлечь метод ...» всегда включен, наш SWTBot проходит.Но SWTBot должен позволить нам выбрать пункт меню, не взламывая плагин org.eclipse.jdt.ui.

Весь проект, содержащий указанный выше модульный тест, доступен на github .Я также сообщил о проблеме на форуме Eclipse для системы отслеживания ошибок SWTBot и .Но мы не получили решения от форума.

1 Ответ

1 голос
/ 06 октября 2010

Возможно, вы должны сбросить все ожидающие события, чтобы включить меню. Добавьте этот цикл, прежде чем пытаться нажать на меню:

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

...