2017-04-10 43 views
0

我使用gradle和mongoDB選項生成帶有JHipster的新應用程序。 搖籃編譯好:Vanilla Jhispter:無法運行測試(SocketTimeOut異常)

gradle test --tests com.jpoc.service.UserServiceIntTest 

,輸出:當我想運行一個測試

c:\webs\workspace-jhipster\jpoc>gradle clean compileJava compileTestJava 
:clean 
:cleanResources UP-TO-DATE 
:bootBuildInfo 
:nodeSetup SKIPPED 
:npmSetup SKIPPED 
:webpackBuildDev SKIPPED 
:processResources 
:compileJava 
:classes 
:compileTestJava 

BUILD SUCCESSFUL 

Total time: 6.704 secs 

問題到達

com.jpoc.service.UserServiceIntTest > assertThatUserMustExistToResetPassword FAILED 
    java.lang.IllegalStateException 
     Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException 
      Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException 
       Caused by: org.springframework.beans.factory.BeanCreationException 
        Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException 
         Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException 
          Caused by: org.springframework.beans.factory.BeanCreationException 
           Caused by: org.springframework.beans.BeanInstantiationException 
            Caused by: de.flapdoodle.embed.process.exceptions.DistributionException 
             Caused by: java.io.IOException 
              Caused by: java.net.SocketTimeoutException 

我敢肯定這是一個錯誤配置的問題,但我看不出哪一個。

我使用最新的jijster 4.2.0

謝謝。

+0

問題是嵌入式mongoDB試圖下載mongoDB的服務器部分。當我通過代理傳遞時,我需要對其進行配置。 –

回答

0

要設置在測試套件的MongoDB代理與春天開機,我把例如:

@BeforeClass 
    public static void setup_mongo() throws UnknownHostException, IOException{ 

     String proxyHost = "proxy.priv.atos.fr"; 
     String proxyPort = "3128"; 

     String proxy = System.getenv("http_proxy"); 
     System.out.println("Proxy URL : " + proxy); 
     if(proxy != null){ 
      if(proxyHost == null && proxyPort == null){ 
       URL proxyurl = new URL(proxy); 
       proxyHost = proxyurl.getHost(); 
       proxyPort = String.valueOf(proxyurl.getPort()); 
      } 
     } 

     MongodStarter starter ; 

     System.out.println("Proxy Host : " + proxyHost); 
     System.out.println("Proxy Port : " + proxyPort); 
     if (proxyHost != null && proxyPort != null) { 
      IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder().defaults(Command.MongoD) 
        .artifactStore(
          new ArtifactStoreBuilder().defaults(Command.MongoD) 
            .download(
              new DownloadConfigBuilder() 
                .defaultsForCommand(Command.MongoD) 
                .proxyFactory(
                  new HttpProxyFactory(
                    proxyHost, 
                    Integer.parseInt(proxyPort))) 
                .build()).build()).build(); 
      starter = MongodStarter.getInstance(runtimeConfig); 
     } else { 
      starter = MongodStarter.getDefaultInstance(); 
     } 


     IMongodConfig mongodConfig = new MongodConfigBuilder() 
       .version(Version.Main.PRODUCTION) 
       .net(new Net(0, Network.localhostIsIPv6())).build(); 

     MongodExecutable mongodExecutable = null; 

     mongodExecutable = starter.prepare(mongodConfig); 
     mongodExecutable.start(); 

    } 

這樣,它下載MongoDB服務器,並嘗試運行它。接下來的問題是我沒有權限在JVM中運行這個可執行文件。