Пример быстрого запуска Testcontainers не работает?

#java #testcontainers

#java #тестовые контейнеры

Вопрос:

Я пытаюсь использовать пример быстрого запуска Junit 5 Testcontainers:

https://www.testcontainers.org/quickstart/junit_5_quickstart/

Я использую версию 5.6.1 для jupiter и версию 1.14.3 для testcontainers.

 <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.6.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-params</artifactId>
    <version>5.6.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.6.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>testcontainers</artifactId>
    <version>1.14.3</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>1.14.3</version>
    <scope>test</scope>
</dependency>
  
 import org.testcontainers.containers.GenericContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;

@Testcontainers
public class TestcontainersDemo {
    @Container
    public GenericContainer redis = new GenericContainer(DockerImageName.parse("redis:5.0.3-alpine"))
            .withExposedPorts(6379);

}
  

Eclipse IDE жалуется

 The method parse(String) is undefined for the type DockerImageName
  

Как я могу это исправить?

Комментарии:

1. Какую версию testcontainers вы используете?

2. Отредактировано! Я использую версию testcontainers из руководства, но более высокую версию jupiter (5.6.1 вместо 5.4.2)

3. Я думаю, проблема в том, что пример уже обновлен для версии-кандидата 1.15, в то время DockerImageName.parse(...) как он еще не доступен в опубликованной версии 1.14.3.

Ответ №1:

Для testcontainer 1.14.3 просто используйте.

 @Container
public GenericContainer<?> redis = new GenericContainer<>("redis:5.0.3-alpine")
.withExposedPorts(6379);

  

Или переключитесь на версию-кандидат на выпуск, например, версию 1.15.0-rc2 , которая поддерживает

 DockerImageName.parse("redis:5.0.3-alpine")