Тесты TestFX проходят всесторонне, но безрезультатно
Я пытаюсь написать GUI-тесты для моего университетского проекта. Я пытаюсь сделать это с помощью TestFX 4.0.4, но у меня возникла проблема. Для проекта мы также обязаны использовать постоянную интеграцию с Travis. Это означает, что я должен сделать тесты GUI без головы. Однако, когда я пытаюсь выполнить свои тесты без головы, они терпят неудачу, в то время как они проходят, когда они наполняют голову.
Это код, который я использую для запуска теста без головы:
@BeforeClass
public static void setupHeadlessMode() {
System.setProperty("testfx.robot", "glass");
System.setProperty("testfx.headless", "true");
System.setProperty("prism.order", "sw");
System.setProperty("prism.text", "t2k");
System.setProperty("java.awt.headless", "true");
}
Тест, который я запускаю, щелкает по кнопке optionsButton, которая переключает сцену в меню параметров и затем должна нажимать кнопку musicButton, чтобы переключать, играет ли музыка. Переключатель сцены может вызвать сбой в этом случае, но я не знаю, как мне этого избежать. Это тестовый код:
@Test
public void testMusicPlaying() {
clickOn("#optionsButton");
assertThat((boolean) ConfigLoader.get("musicPlaying")).isTrue();
clickOn("#musicButton");
assertThat((boolean) ConfigLoader.get("musicPlaying")).isFalse();
clickOn("#musicButton");
assertThat((boolean) ConfigLoader.get("musicPlaying")).isTrue();
}