Как я могу использовать Hamcrests содержит метод с JUnit 5? - PullRequest
0 голосов
/ 03 октября 2018

Снимок экрана кода Java в Eclipse

JUnit 5, по-видимому, не содержит требуемый JAR для импорта Hamcrest ниже:

import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.
import static org.hamcrest.Matchers.*;
import static org.hamcrest.Matchers.containsInAnyOrder;

Когда я добавилhamcrest-all-1.3.jar (см. скриншот) это работало, но вызывало ошибку при запуске моих тестов.

Я думаю, что компилятору не нравится, что есть дубликаты как в jar ядра в Junit, так и в моем JAR.

Пожалуйста, помогите, спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Hamcrest 1.3 должен работать с JUnit 5.1, скорее всего, вы перепутали зависимости.Если у вас есть конфликт путей к классам с другими зависимостями, вы можете использовать hamcrest-core и hamcrest-library.

<dependency>
  <groupId>org.hamcrest</groupId>
  <artifactId>hamcrest-all</artifactId>
  <version>1.3</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-api</artifactId>
  <version>5.1.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-engine</artifactId>
  <version>5.1.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.junit.vintage</groupId>
  <artifactId>junit-vintage-engine</artifactId>
  <version>5.1.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.junit.platform</groupId>
  <artifactId>junit-platform-launcher</artifactId>
  <version>1.1.0</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.junit.platform</groupId>
  <artifactId>junit-platform-runner</artifactId>
  <version>1.1.0</version>
  <scope>test</scope>
</dependency>
...