2013-03-27 11 views
7

Używam junit o 4.10 i deklaruję hamcrest-core w wersji 1.3 oraz bibliotekę hamsrest na poziomie 1.3. Moje pytanie brzmi: "Hamcrest-library" i "hamcrest-core" osadzone w junicie 4.10. a co z junitem 4.11?deklaracja junit i hamcrest

<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> 

Odpowiedz

8

Jeśli przejdziesz do search.maven.org można wyszukiwać artefakty i widzieć ich zależności. Jeśli używasz Eclipse z wtyczką Maven, możesz również kliknąć Hendarchię zależności w edytorze POM.

Patrząc na Maven website widać, że JUnit 4.11 zależy Hamcrest 1.3:

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

Hamcrest biblioteki trzeba dodać siebie.

+0

Czy muszę dodać zależność hamcrest-core 1.3 jawnie, kiedy używam junit 4.11? Kiedy googlowałem, powiedział, że "JUnit 4.11 nie zawiera już klas org.hamcrest." oba oświadczenia są sprzeczne. – user1772643

+0

Posiadanie hamcrest jako zależność i wliczając zajęcia hamcrest są 2 różne rzeczy. "w tym klasy" oznacza, że ​​klasy znajdują się w junit.jar. "jako zależność" oznacza, że ​​potrzebujesz słoja hamcrest do zbudowania/uruchomienia junit. (jeśli używasz programu maven: zależność zostanie automatycznie uwzględniona w ścieżce klasy.Jeśli nie używasz programu maven, musisz dodać zależność ręcznie w ścieżce klasy) – ben75

+0

@ ben75 ma rację. Chodzi o to, że w słoiku nie ma więcej klas Hamcrestu. Jednak zależy to od tego, czy są w innym słoiku, od którego zależy. – Alex

3

JUnit 4,10 & JUnit 4.11 (jak przedstawiono poniżej):

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

... statku z hamcrest rdzenia 1.1 i 1.3, odpowiednio. Można to zobaczyć na własne oczy, wykorzystując drzewo cel zależność pluginu (bieg mvn zależność: Tree):

$ 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] ------------------------------------------------------------------------ 

Jak głupie, jak to brzmi, trzeba podać odpowiedni hamcrest Biblioteka artefakt do skorzystania z the Hamcrest Matchers. Mam nadzieję, że to pomoże ...

Powiązane problemy