我必须使用 JavaFx
GUI 测试一些 Spring
应用程序。不幸的是,我无法将它们一一运行。我正在使用 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
,只有 launch 方法。
最佳答案
您是否尝试过禁用 JMX 自动配置?
@Configuration
@EnableAutoConfiguration(exclude = {
JmxAutoConfiguration.class
})
或者
spring.jmx.enabled = false
关于java - 如何运行多个 JavaFX 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57400409/