我正在尝试为我的大学项目编写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();
}