Тесты SWTbot не работают должным образом
Поэтому я тестирую плагин eclipse с SWTbot и не получаю ожидаемого результата - когда я сокращаю тест, оказывается, что проблема не в боте, а в некотором коде, который я скопировал напротив другой части программы (где она была полностью функциональной)
Следующий код...
@RunWith(SWTBotJunit4ClassRunner.class)
public class Tests {
private static SWTWorkbenchBot bot;
@BeforeClass
public static void beforeClass() throws Exception {
bot = new SWTWorkbenchBot();
bot.viewByTitle("Welcome").close();
}
@Test
public void maybeThisWillWork(){
IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
System.out.println("A");
IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
System.out.println("B");
}
@AfterClass
public static void sleep() {
System.out.println("In the sleep function");
bot.sleep(10000);
}
}
Дает мне вывод -
A
In the sleep function
Скорее, чем ожидалось
A
B
In the sleep function
Есть идеи?
2 ответа
Таким образом, получается, что ответ таков (также хорошее преимущество stackru - то, что я фактически решил это где-то еще, вспомнил, что у меня была похожая проблема, а затем мне пришлось вернуться к stackru, чтобы напомнить себе о деталях)
SWTBot не работает в собственном потоке пользовательского интерфейса, следовательно, ошибки нулевого указателя, что я должен был сделать, это эффективно использовать:
Display display = bot.getDisplay();
display.syncExec(objectThatdoesthethingiwanttogetdoneintheUIthread);
System.out.println(objectThatdoesthethingiwanttogetdoneintheUIthread.results);
... и это заставило вещи работать...
Вам может понадобиться запустить тест как плагин JUnit. Вы пробовали это?