2014-03-13 61 views
1

我試圖在簡單的彈簧項目上運行一些dbunit測試時出現了一些錯誤。我的pom文件中的彈簧依賴性錯誤

java.lang.IncompatibleClassChangeError: Found class org.springframework.test.context.TestContext, but interface was expected 
    at com.github.springtestdbunit.DbUnitTestExecutionListener.prepareTestInstance(DbUnitTestExecutionListener.java:86) 

這是我的錯誤。我知道它與依賴關係有關,我一直在擺弄它們(升級等)。爲了清楚起見,這是我的pom.xml。 。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.springframework.samples</groupId> 
    <artifactId>TheHitProject</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <properties> 

     <!-- Generic properties --> 
     <java.version>1.6</java.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

     <!-- Spring --> 
     <spring-framework.version>3.2.3.RELEASE</spring-framework.version> 

     <!-- Hibernate/JPA --> 
     <hibernate.version>4.2.1.Final</hibernate.version> 

     <!-- Logging --> 
     <logback.version>1.0.13</logback.version> 
     <slf4j.version>1.7.5</slf4j.version> 

     <!-- Test --> 
     <junit.version>4.11</junit.version> 

    </properties> 

    <dependencies> 
     <!-- JDBC etc --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <!-- Spring and Transactions --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 

     <!-- Logging with SLF4J & LogBack --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${slf4j.version}</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>${logback.version}</version> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 


     <!-- Test Artifacts --> 
     <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-test</artifactId> 
    <version>${spring-framework.version}</version> 
    <scope>test</scope> 
</dependency> 

     <!-- <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>4.0.0.R</version> 
      <scope>test</scope> 
     </dependency> --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
      <scope>test</scope> 
     </dependency> 
     <!--DB unit --> 
     <dependency> 
    <groupId>org.dbunit</groupId> 
    <artifactId>dbunit</artifactId> 
    <version>2.4.9</version> 
</dependency> 
<dependency> 
     <groupId>com.github.springtestdbunit</groupId> 
     <artifactId>spring-test-dbunit</artifactId> 
     <version>1.1.0</version> 
     <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.7.5</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.hsqldb</groupId> 
    <artifactId>hsqldb</artifactId> 
    <version>2.3.2</version> 
    <scope>test</scope> 
</dependency> 


    </dependencies> 
</project> 
+0

使用'MVN依賴:tree'幫助解決衝突。 –

回答

1

spring-test-dbunit 1.1.0要求春4

http://mvnrepository.com/artifact/com.github.springtestdbunit/spring-test-dbunit/1.1.0

你不使用Spring 4

+0

謝謝戴夫,這當然是我的問題。欣賞幫助 – HammockKing

+0

要完成問題,現在的錯誤是java.lang.IllegalArgumentException:無法使用類com.github.springtestdbunit.dataset.FlatXmlDataSetLoader從「classpath:songwriterData.xml」加載數據集這與我的依賴性更改有關嗎? – HammockKing

+0

@StephenMcKenna不知道;這是一個單獨的問題。它在src/test/resources的根目錄下嗎? –