2016-04-14 3 views
2

Erste, sorry für schlechtes Englisch ...Projekt baut auf lokale, aber nicht in travis-ci Behälter

ich das Projekt Funken Frühjahr erstellt (https://github.com/rascorp/spark-spring) eine einfache Möglichkeit zu schaffen, Feder Kontext in funken java zu setzen Rahmen.

Ich erstelle einen Test, um zu überprüfen, ob der Server startet und gibt einen Wert zurück. In meinem PC laufen alle Tests einwandfrei, aber in travis-ci schlägt der Verbindungstest fehl.

lokale Ausgabe:

Running com.github.rascorp.spark.spring.ConsoleAppInitializerTest 
abr 14, 2016 12:46:01 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 
INFORMAÇÕES: Refreshing org[email protected]48140564: startup date [Thu Apr 14 12:46:01 BRT 2016]; root of context hierarchy 
abr 14, 2016 12:46:01 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFORMAÇÕES: Loading XML bean definitions from class path resource [application-context-spark-spring-test.xml] 
abr 14, 2016 12:46:01 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFORMAÇÕES: Loading XML bean definitions from class path resource [application-context-spark-spring.xml] 
[Thread-1] INFO org.eclipse.jetty.util.log - Logging initialized @663ms 
[Thread-1] INFO spark.webserver.JettySparkServer - == Spark has ignited ... 
[Thread-1] INFO spark.webserver.JettySparkServer - >> Listening on 0.0.0.0:4568 
[Thread-1] INFO org.eclipse.jetty.server.Server - jetty-9.3.2.v20150730 
[Thread-1] INFO org.eclipse.jetty.server.ServerConnector - Started [email protected]{HTTP/1.1,[http/1.1]}{0.0.0.0:4568} 
[Thread-1] INFO org.eclipse.jetty.server.Server - Started @734ms 
[main] INFO spark.webserver.JettySparkServer - >>> Spark shutting down ... 
[main] INFO org.eclipse.jetty.server.ServerConnector - Stopped [email protected]{HTTP/1.1,[http/1.1]}{0.0.0.0:4568} 
[main] INFO spark.webserver.JettySparkServer - done 
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.025 sec - in com.github.rascorp.spark.spring.ConsoleAppInitializerTest 

Travis-CI-Ausgang (Sie bauen hier überprüfen: https://travis-ci.org/rascorp/spark-spring/builds/123091116):

Running com.github.rascorp.spark.spring.ConsoleAppInitializerTest 
Apr 14, 2016 3:42:15 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]6fffcba5: startup date [Thu Apr 14 15:42:15 UTC 2016]; root of context hierarchy 
Apr 14, 2016 3:42:15 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [application-context-spark-spring-test.xml] 
Apr 14, 2016 3:42:15 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [application-context-spark-spring.xml] 
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.876 sec <<< FAILURE! 
testContext(com.github.rascorp.spark.spring.ConsoleAppInitializerTest) Time elapsed: 0.035 sec <<< FAILURE! 
java.lang.AssertionError: Connection refused 
    at org.junit.Assert.fail(Assert.java:88) 
    at com.github.rascorp.spark.spring.ConsoleAppInitializerTest.testContext(ConsoleAppInitializerTest.java:47) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) 
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) 
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) 
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) 
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) 

Wer kann mir helfen, dieses Problem zu lösen?

Antwort

2

Ich habe das Problem gefunden!

Das Problem tritt auf, weil die Servicemethoden nicht verfügbar sind, wenn der Test ausgeführt wird. Um zu beheben, muss ich den folgenden Code aufrufen, bevor Sie den Test ausführen.

/** 
* Waits for the spark server to be initialized. 
* If it's already initialized will return immediately 
*/ 
Spark.awaitInitialization(); 
0

Der Travis CI-Ausgang sagt, dass ein Test fehlgeschlagen ist. Travis CI läuft nicht unbedingt unter den gleichen Bedingungen wie Ihr lokaler Computer. Sehen Sie, was Sie tun können, um diesen einen Test an beide Maschinen weiterzugeben. Wenn du es mit Travis nicht schaffen kannst, wie kannst du dann wissen, dass es auf jedem anderen Computer funktioniert, außer auf deinem eigenen? Informationen zum Debuggen des spezifischen Problems finden Sie unter Travis CI Common Build Problems.

+0

Ich weiß, dass ein Test fehlschlägt. Das ist der Punkt! Ich weiß einfach nicht warum ... In diesem Test rufe ich einfach einen Service an, den der Funke erstellt und die Rücksendung prüft. Dies ist der Code, der fehlschlägt: https://github.com/rascorp/spark-spring/blob/master/spark-spring-xml-support/src/test/java/com/github/rascorp/spark/spring/ConsoleAppInitializerTest .java Um mir zu helfen, das Problem zu finden, habe ich Logback in Projekt und das Ergebnis Build ist hier gefunden: https://travi-ci.org/rascorp/spark-spring/builds/123151316 Der Code scheint in Ordnung. .. Ich verstehe wirklich nicht, warum der Test in Trevis-ci fehlschlägt. –