【问题标题】:TestContainers Oracle TimeoutExceptionTestContainers Oracle 超时异常
【发布时间】:2018-04-17 08:13:20
【问题描述】:

我尝试使用 testcontainers 库与 Oracle 进行集成测试。这是一个简单的测试:

public class SimpleTest {

    @Rule
    public OracleContainer oracle = new OracleContainer();

    @Test
    public void simpleTest() throws SQLException {
        HikariDataSource ds = buildHikariDataSource();
        Statement statement = ds.getConnection().createStatement();
        statement.execute("SELECT 1 FROM dual");
        ResultSet resultSet = statement.getResultSet();

        resultSet.next();
        int resultSetInt = resultSet.getInt(1);
        assertEquals("A basic SELECT query succeeds", 1, resultSetInt);
    }

    private HikariDataSource buildHikariDataSource() {
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setJdbcUrl(oracle.getJdbcUrl());
        hikariConfig.setUsername(oracle.getUsername());
        hikariConfig.setPassword(oracle.getPassword());
        return new HikariDataSource(hikariConfig);
    }
}

But it fails with TimeoutException:

Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:256)
    at org.testcontainers.containers.GenericContainer.lambda$start$0(GenericContainer.java:184)
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:76)
    ... 18 more
Caused by: org.rnorth.ducttape.TimeoutException: org.rnorth.ducttape.TimeoutException: java.util.concurrent.TimeoutException
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:53)
    at org.testcontainers.containers.JdbcDatabaseContainer.waitUntilContainerStarted(JdbcDatabaseContainer.java:81)
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:235)
    ... 20 more

我的 Docker 安装适用于 testcontainers-oracle-xe,操作系统是 macOS Sierra 10.12.6。

如何解决这个问题?

附: Full console output

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?

标签: java docker junit integration-testing testcontainers


【解决方案1】:

总而言之,我在 testcontainers-java-module-oracle-xe 存储库中创建了一个 issue

解决方案是在系统偏好设置中将位置更改为美国并将语言更改为英语。

testcontainers 工程师的回答:

我的同事也遇到了同样的问题。我们已经调试和 了解 oracle TNS (ORA-12514) 的问题。为了 解决它,需要将语言更改为英语和位置 到美国。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2021-03-07
    • 2022-01-18
    • 1970-01-01
    • 2015-01-28
    • 2015-11-29
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多