2013-03-27 7 views
7

Sto usando junit alla 4.10 e ho dichiarato hamcrest-core alla 1.3 e hamcrest-library alla 1.3. La mia domanda è: hamcrest-library e hamcrest-core incorporati in junit 4.10. che dire di junit 4.11?junit e hamcrest dichiarazione

<dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.10</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-core</artifactId> 
     <version>1.3</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-library</artifactId> 
     <version>1.3</version> 
     <scope>test</scope> 
    </dependency> 

risposta

8

Se si passa a search.maven.org è possibile cercare i manufatti e vedere le loro dipendenze. Se si utilizza Eclipse con il plugin Maven, è anche possibile fare clic su Gerarchia dipendenze nell'editor POM.

Guardando sul Maven website si può vedere che JUnit 4.11 dipende Hamcrest 1.3:

<dependencies> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-core</artifactId> 
     <version>1.3</version> 
     <scope>compile</scope> 
    </dependency> 
</dependencies> 

biblioteca Hamcrest si deve aggiungere se stessi.

+0

Devo aggiungere la dipendenza hamcrest-core 1.3 esplicitamente quando uso junit 4.11 ?? Quando ho cercato su Google, ha detto che "JUnit 4.11 non include più le classi org.hamcrest". entrambe le dichiarazioni sono contraddittorie. – user1772643

+0

Avere hamcrest come dipendenza e includere le classi di hamcrest sono due cose distinte. "Includere classi" significa che le classi si trovano in junit.jar. "come dipendenza" significa che è necessario il jar hamcrest per creare/eseguire junit. (se si utilizza Maven: la dipendenza verrà automaticamente inclusa nel percorso di classe. Se non si utilizza Maven, è necessario aggiungere manualmente la dipendenza nel percorso di classe) – ben75

+0

@ ben75 è giusto. Significa che non ci sono più classi di Hamcrest * nel * barattolo. Comunque dipende dal fatto che siano in un altro barattolo, da cui dipende. – Alex

3

JUnit 4.10 & JUnit 4.11 (come illustrato di seguito):

<dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 

... nave con il hamcrest-core rispettivamente 1.1 e 1.3. Si può vedere questo per te sfruttando obiettivo del plugin dell'albero delle dipendenze (in esecuzione dipendenza mvn: Albero):

$ mvn dependency:tree 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building testng 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ testng --- 
[INFO] testng:testng:jar:1.0-SNAPSHOT 
[INFO] \- junit:junit:jar:4.10:test 
[INFO] \- org.hamcrest:hamcrest-core:jar:1.1:test 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.483s 
[INFO] Finished at: Fri Mar 29 12:07:22 MDT 2013 
[INFO] Final Memory: 5M/81M 
[INFO] ------------------------------------------------------------------------ 

tanto sciocco quanto questo suona, è necessario includere il manufatto hamcrest-libreria appropriata per sfruttare gli Hamcrest Matchers. Speriamo che questo aiuti ...