2014-04-02 17 views
7

Ho riscontrato un problema con l'esecuzione del test Gradle, JUnit e Scala, nel nostro Scala language extension for Vert.x. Recentemente abbiamo aggiornato da Vert.x 2.1.RC1 a 2.1.RC2, abbiamo iniziato a vedere che in alcuni ambienti come l'istanza di Cloudbees, l'esecuzione del test cerca un metodo fantasma chiamato classMethod in una classe di test, che non esiste, e il test il tempo è scaduto. Di conseguenza, il resto dei test fallisce.Misterioso test "classMethod` nel test di Gradle Scala con JUnit 4

In questo console esempio, si può vedere:

org.vertx.scala.tests.core.http.HttpTest > classMethod FAILED 
    java.lang.AssertionError: Timed out waiting for test to complete 

Non abbiamo idea di cosa questo classMethod è, dove è venuta da ... ecc. Ancora più spettrale è che non sono in grado di replicarlo né negli ambienti OSX né in quelli Linux (RHEL7), sia con JDK 1.7u45 che con 1.7u51.

L'unico modo che abbiamo trovato per risolverlo finora è tornare a Vert.x 2.1.RC1 (vedi console of run con RC1), ma non siamo davvero in grado di vedere il collegamento tra questo e questo misterioso classMethod.

Abbiamo provato ad aggiornare a Gradle 1.11 nel caso in cui si tratta di un problema con Gradle stesso ma senza fortuna. Attualmente stiamo utilizzando JUnit 4.11.

L'unica cosa che sembra leggermente sospettosa è come anche se il progetto utilizza Scala 2.10.4, il plugin Gradle Scala sembra bring in Zinc which appears to need Scala 2.9.2. Quando ho eliminato la cartella .gradle/ localmente, non ho visto alcun download di Scala 2.9.2. Mi chiedo se questo sta incasinando le cose?

Infine, per quest'ultimo periodo, quando HttpCompressionTest sembrano avere che classMethod, ho confrontato il javap uscita locally con the one in Cloudbees, e sembrano identici.

Sono fuori idee, qualche suggerimento?

AGGIORNAMENTO: Come ultima risorsa, ho deciso di eseguire l'aggiornamento a Vert.x 2.1.RC3-SNAPSHOT ed è tutto back to normal. Non ho assolutamente idea del perché, ma lo prendo :)

+0

Ive ha visto un errore simile alla classeMethod. che cos'è? – jayunit100

+0

Nessuna idea, sembrerebbe che fosse qualcosa di sbagliato in quel particolare rilascio jar. Qualsiasi altra istantanea dopo aver funzionato correttamente: | –

+0

Abbiamo riscontrato lo stesso messaggio di errore. Nel nostro caso, il motivo era un nostro bug: un vertice Vert.x non ha mai risposto, quindi il test è bloccato, per sempre, fino a quando il runner di test non lo ha ucciso. Nel nostro caso, la soluzione era di correggere l'errore. - Quando si esegue su localhost, il bug non è stato attivato - solo quando è in esecuzione sulla nostra macchina Jenkins. – KajMagnus

risposta

0

Ho visto questo comportamento causato da (accidentalmente) avere due diverse versioni della stessa lib sul classpath. Inoltre, quando un particolare progetto è confezionato come diversi JAR diversi, uno di questi era a valle di tutto il resto.