2013-03-27 2 views
7

Я использую junit в 4.10 и объявлен hamcrest-core в 1.3 и hamcrest-library на 1.3. Мой вопрос - это hamcrest-library и hamcrest-core, встроенные в junit 4.10. Что относительно junit 4.11?Объявление junit и 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> 

ответ

8

При просмотре search.maven.org вы можете найти артефакты и увидеть их зависимостей. Если вы используете Eclipse с плагином Maven, вы также можете нажать Иерархия зависимостей в редакторе POM.

Глядя на Maven website вы можете увидеть, что JUnit 4,11 зависит от Hamcrest 1.3:

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

Hamcrest библиотека, вы должны добавить себя.

+0

Должен ли я добавить hamcrest-core 1.3 зависимость явно, когда я использую junit 4.11 ?? Когда я googled, он сказал, что «JUnit 4.11 больше не включает классы org.hamcrest». оба утверждения противоречат друг другу. – user1772643

+0

Имея hamcrest как зависимость и включая классы hamcrest, есть две разные вещи. «включая классы» означает, что классы находятся в junit.jar. «как зависимость» означает, что вам нужна панель hamcrest для сборки/запуска junit. (если вы используете maven: зависимость автоматически включается в ваш путь к классу. Если вы не используете maven, вам нужно добавить зависимость вручную в ваш путь к классу). – ben75

+0

@ ben75 является правильным. Они означают, что больше нет классов Хамкреста * в банке. Однако это зависит от того, что они находятся в другой банке, от которой это зависит. – Alex

3

JUnit 4.10 & JUnit 4.11 (как показано ниже):

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

... корабль с Hamcrest-ядром 1.1 и 1.3 соответственно. Вы можете увидеть это для себя, используя дерево цели плагина с зависимостями (с запущенным МВН зависимость: дерево):

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

Как бы глупо это звучит, вам необходимо включить соответствующую Hamcrest библиотека артефакта, чтобы воспользоваться совпадения Хамкреста. Надеюсь, это поможет ...

 Смежные вопросы

  • Нет связанных вопросов^_^