Ich möchte Spring Data JPA in einem neuen Projekt verwenden. Ich habe grundsätzlich die in https://spring.io/guides/gs/accessing-data-jpa/ beschriebene Konfiguration verfolgt.MBean kann nicht registriert werden [HikariDataSource (testdb)]
Alles funktioniert gut, wenn ich die Anwendung starte oder wenn ich einen einzelnen Test starte.
Sobald ich beginne zwei Tests zusammen, Frühling kann die Application im zweiten Test nicht geladen werden, da es mit fehlschlägt:
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [HikariDataSource (testdb)] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource
Wie kann ich den zweiten Versuch vermeiden, dass die HikariDataSource zu registrieren?
Das ist meine build.gradle
dependencies {
compileOnly "org.projectlombok:lombok:1.16.12"
compile "org.springframework.boot:spring-boot-starter-web"
compile "org.springframework.boot:spring-boot-starter-data-jpa"
compile "com.h2database:h2"
compile "org.apache.commons:commons-lang3:3.6"
testCompile "org.junit.jupiter:junit-jupiter-api:5.0.0"
testCompile "org.junit.jupiter:junit-jupiter-params:5.0.0"
testRuntime "org.junit.platform:junit-platform-launcher:1.0.0"
testRuntime "org.junit.jupiter:junit-jupiter-engine:5.0.0"
testCompile "org.springframework.boot:spring-boot-starter-test"
}
und die erste Testklasse
@SpringJUnitConfig(Application.class)
class FirstRepositoryTest {
@Autowired
private FirstRepository firstRepository;
mit JUnit 4 und @RunWith(SpringJUnit4ClassRunner.class)
das Problem dadurch lösen, so dass es 5 durch die Wechselwirkung von JUnit verursacht werden muß und Frühling.
Ich habe dies bereits versucht (d. H. Extrahieren einer Basisklasse mit dem Anwendungskontext). Es hilft nicht. – tkr
Auch ist es kein Problem mit Junit 4, wo ich den Anwendungskontext nicht explizit zwischen den Tests teilen. – tkr