2017-11-04 19 views
0

오라클과의 통합 테스트를 위해 testcontainers 라이브러리를 사용하려고했습니다. 다음은 간단한 테스트입니다 :TestContainers Oracle TimeoutException

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 

내 도커 설치 testcontainers - 오라클 XE 및 운영 체제에 적합한 맥 OS 시에라 10.12.6이다.

어떻게이 문제를 해결할 수 있습니까?

P. Full console output

+0

전체 스택 추적을 게시 할 수 있습니까? –

답변

1

모두 나는 testcontainers-java-module-oracle-xe 저장소에 issue을 만들었습니다.

해결책은 시스템 환경 설정에서 위치를 미국으로 변경하고 언어를 영어로 변경하는 것이 었습니다.

testcontainers 엔지니어의 도움말 :

내 동료는 같은 문제에 직면했다. 우리는 디버그를했고 이 oracle TNS (ORA-12514)에서이 문제점을 이해했습니다. 을 해결하려면 언어를 영어로 변경하고 을 미국으로 변경해야합니다.