我必须使用Spring
GUI测试某些JavaFx
应用程序。不幸的是,我无法将它们一个接一个地运行。我正在使用Java 11
,JUnit 5.3
和TestFX
库。
我尝试添加以下方法:
@Before
public void setUp() throws Exception
{
System.setProperty("spring.profiles.active", "test");
launch(Main.class);
}
,尽管我会再次重新启动应用程序并正常工作。不幸的是,只有一种测试以正确的方式开始并执行。在其他情况下,我会收到错误消息:
java.util.concurrent.ExecutionException: org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [HikariDataSource (HikariPool-2)] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource
整个测试类现在看起来像这样:
@Before
public void setUp() throws Exception
{
System.setProperty("spring.profiles.active", "test");
launch(Main.class);
}
@Override
public void start(Stage stage) throws Exception {
stage.show();
}
@Test
public void testRegisterButton()
{
clickOn("#register_button");
}
@Test
public void testLoginButton()
{
sleep(200L);
}
}
只有一个简单的示例测试。以前我做了
init()
函数不带@Before
,仅具有启动方法。
答案 0 :(得分:1)
您是否尝试禁用JMX自动配置?
sharedPrefs
或
@Configuration
@EnableAutoConfiguration(exclude = {
JmxAutoConfiguration.class
})