我对在我的项目中使用测试容器非常感兴趣。
但是,我很难将其设置为与 Informix 一起使用。
请注意,我可以使用 Docker-for-Mac 启动一个 informix 容器,它将构建并启动。
虽然不确定它是否可以与测试容器一起使用。我希望它会。
这是我到目前为止所拥有的
测试类
package com.example.demo;
import com.github.dockerjava.api.command.CreateContainerCmd;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
import org.testcontainers.containers.wait.strategy.WaitAllStrategy;
import java.time.Duration;
import static org.junit.Assert.assertEquals;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
private static GenericContainer informix;
@BeforeClass
public static void init() {
informix = new GenericContainer("ibmcom/informix-innovator-c")
.withExposedPorts(9088)
.withEnv("LICENSE", "accept")
.withPrivilegedMode(true)
.withCreateContainerCmdModifier(command -> ((CreateContainerCmd)command).withTty(Boolean.TRUE))
.waitingFor(new WaitAllStrategy().withStrategy(new LogMessageWaitStrategy().withRegEx(".*listener on port.*\n"))
.withStrategy(new HostPortWaitStrategy())
.withStartupTimeout(Duration.ofMinutes(2)));
informix.start();
}
@AfterClass
public static void destroy(){
informix.close();
}
@Test
public void testDemo() {
int foo = 1;
assertEquals(foo, 1);
}
}
容器启动然后永远挂起,永远不会进入测试
哆啦的时光机
相关分类