1

Il semble que cette situation semble avant, et on a demandé & répondu, mais la situation est modifiée en raison des versions mises à jour ...IncompatibleClassChangeError lors du test SpringDataJpa utilisant DbUnit

J'ai essayé mon test Spring DBUnit avec la configuration par défaut (connexion à h2db , je l'ai vérifié, h2db est utilisé correctement):

@RunWith(SpringJUnit4ClassRunner.class) 
    @ContextConfiguration(classes = {DatabaseTestConfig.class}) 
    @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, 
      DbUnitTestExecutionListener.class}) 
    @TestPropertySource(locations = "classpath:test-application.properties") 

test-application.properties est vide. dépendances de test:

 <dependency> 
      <groupId>org.dbunit</groupId> 
      <artifactId>dbunit</artifactId> 
      <version>2.5.3</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.github.springtestdbunit</groupId> 
      <artifactId>spring-test-dbunit</artifactId> 
      <version>1.0.0</version> 
      <scope>test</scope> 
     </dependency> 

dépendances du projet:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.3.RELEASE</version> 
    <relativePath/> 
</parent> 
erreur

que j'ai:

14:01:58.162 [main] ERROR org.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [[email protected]] to prepare test instance [com.nex[email protected]198b6731] 
    java.lang.IncompatibleClassChangeError: Found interface org.springframework.test.context.TestContext, but class was expected 
    at com.github.springtestdbunit.DbUnitTestExecutionListener.prepareTestInstance(DbUnitTestExecutionListener.java:78) 
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) 
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 

J'ai essayé downgrade version boot ressort à 1.4.0 - même erreur. J'espère que quelqu'un peut m'aider avec le problème ou suggérer comment déterminer la compatibilité de version.

Répondre

1

Il semble que j'ai utilisé trop ancienne version de spring-test-dbunit (j'ai utilisé l'ancien article). Je l'ai remplacé avec:

 <dependency> 
      <groupId>com.github.springtestdbunit</groupId> 
      <artifactId>spring-test-dbunit</artifactId> 
      <version>LATEST</version> 
      <scope>test</scope> 
     </dependency> 

et cela fonctionne maintenant.