2016-04-26 3 views
4

Ich versuche, meine Ruhe-Schnittstelle mit einer Klasse zu testen, die von JerseyTest erbt. Während die erste Testmethode ohne Probleme erfolgreich ist, schlagen die folgenden Tests mit einer bereits verwendeten Bind-Ausnahmeadresse fehl. Muss ich zwischen den Tests eine Art Ressource freisetzen, damit dies funktioniert?Die Jersey-Testadresse wird bereits verwendet, wenn mehrere Methoden ausgeführt werden

class MyClass extends JerseyTest() { 
    @Override 
    protected Application configure() { 
     return new ResourceConfig(MyClass.class); 
    } 
    @Test 
    testFirstThing() { 
     // test some request 
    } 
    @Test 
    testFirstThing() { 
     // test another request 
    } 
} 

Antwort

4

hatte ich das gleiche Problem heute, bestanden einige der Tests, aber einige scheiterte mit BindException

Es gibt eine Lösung Test in Jersey Dokumentation ist: https://jersey.java.net/documentation/latest/test-framework.html#parallel

Für einen Zweck Wenn Sie mehrere Testcontainer parallel ausführen, müssen Sie angeben, um den Parameter TestProperties.CONTAINER_PORT auf 0 festzulegen. Dies teilt Jersey Test Framework (und dem zugrunde liegenden Testcontainer) mit, den ersten verfügbaren Port zu verwenden.

@Override 
protected Application configure() { 
    forceSet(TestProperties.CONTAINER_PORT, "0"); 
    return new ResourceConfig(MyClass.class); 
} 
+0

Ausgezeichnet funktioniert es perfekt !! Vielen Dank ;) – user3774109

Verwandte Themen