TestContainers Oracle TimeoutException

我试图使用testcontainers库与Oracle进行集成testing。 这里是简单的testing:

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,os是macOS Sierra 10.12.6。

这个问题怎么解决?

PS 完全控制台输出

总而言之,我在testcontainers-java-module-oracle-xe存储库中创build了一个问题 。

解决scheme是在“系统偏好设置”中将位置更改为美国,将语言更改为英语

testcontainers工程师的答案是:

我的同事也面临同样的问题。 我们用oracle TNS(ORA-12514)debugging了解了这个问题。 为了解决这个问题,有必要把语言改成英文,并把位置改为美国。