2013-03-27 40 views
7

Tôi đang sử dụng junit tại 4.10 và tuyên bố hamcrest-core ở 1.3 và hamcrest-library tại 1.3. Câu hỏi của tôi là hamcrest-library và hamcrest-core được nhúng trong junit 4.10. những gì về junit 4,11?khai báo junit và 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> 

Trả lời

8

Nếu bạn duyệt đến search.maven.org bạn có thể tìm kiếm hiện vật và xem phụ thuộc của chúng. Nếu bạn đang sử dụng Eclipse với plugin Maven, bạn cũng có thể nhấp vào Phân cấp phụ thuộc trong trình chỉnh sửa POM.

Nhìn trên Maven website bạn có thể thấy rằng JUnit 4.11 phụ thuộc vào hamcrest 1.3:

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

thư viện hamcrest bạn phải thêm bản thân.

+0

Tôi có cần thêm phụ thuộc vào hamcrest-core 1.3 một cách rõ ràng khi tôi sử dụng junit 4.11 ?? Khi tôi googled nó nói rằng "JUnit 4.11 không còn bao gồm các lớp org.hamcrest." cả hai câu đều mâu thuẫn. – user1772643

+0

Có hamcrest như là một phụ thuộc và bao gồm cả các lớp hamcrest là 2 điều khác biệt. "bao gồm các lớp" có nghĩa là các lớp nằm trong junit.jar. "như là một phụ thuộc" có nghĩa là bạn cần jar hamcrest để xây dựng/chạy junit. (nếu bạn đang sử dụng maven: phụ thuộc sẽ tự động kỳ diệu bao gồm trong classpath của bạn.Nếu bạn không sử dụng maven bạn phải thêm phụ thuộc theo cách thủ công trong classpath của bạn) – ben75

+0

@ ben75 là đúng. Họ có nghĩa là không có thêm lớp Hamcrest * trong * cái bình. Tuy nhiên, nó phụ thuộc vào chúng trong một cái lọ khác, mà nó phụ thuộc vào. – Alex

3

JUnit 4.10 & JUnit 4.11 (như mô tả dưới đây):

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

... tàu với hamcrest-core 1.1 và 1.3 tương ứng. Bạn có thể thấy điều này cho chính mình bằng cách tận dụng mục tiêu các plugin phụ thuộc của cây (chạy phụ thuộc mvn: cây):

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

Như ngớ ngẩn như âm thanh này, bạn cần phải bao gồm các vật phẩm hamcrest-thư viện thích hợp để tận dụng các trận đấu Hamcrest. Hy vọng rằng điều này sẽ giúp ...