2016-07-25 16 views
0

Ich benutze org.neo4j.ogm.testutil.TestServer und den http-Treiber für Integrationstests anstelle des Embedded Treibers, weil mir gefällt, wie der TestServer einen Browser basiert Schnittstelle, um zu sehen, was mit jedem Test passiert.SDN 4.1 - Multithreading Neo4j TestServer für die parallele Ausführung von Testfällen

Allerdings - meine Tests dauern ewig! Der Build erreicht auf einer relativ schnellen Maschine rund 30 Minuten.

Was ich tun möchte, ist die Verwendung des Maven-Surefire-Plugins, um meine Testfälle parallel auszuführen.

Um dies zu tun, stelle ich mir vor, ich muss in der Lage sein mehrere neo4j TestServer-Instanzen zu starten, jede an einem anderen Port.

Wo ist der beste Ort, um dies mit neo4j 4.1 zu tun? Ich nehme @Before und @After (für Shutdown) Methoden meiner Testfälle an? (möglicherweise in eine Superklasse extrahiert?)

Wie würde ich auch den aktuellen Port für den aktuellen Testkontext in jeden Komponententest bekommen?

Irgendwelche Vorschläge, wie um dies zu realisieren wäre sehr dankbar :)

Antwort

0

Werfen Sie einen Blick auf org.neo4j.ogm.testutil.MultiDriverTestClass, die den Fahrer mit dem Testserver einrichtet. Der TestServer sollte sowieso einen verfügbaren Port auswählen, der Ihr Problem lösen sollte, diese parallel einzurichten. In der Tat, können Sie einfach Ihre Testklasse org.neo4j.ogm.testutil.MultiDriverTestClass zu verlängern haben (die meisten Tests in org.neo4j.ogm.persistence.examples dies zu tun) und bietet eine ogm.properties-Datei, die der Fahrer gibt an, dass verwendet wird, ist der HTTP-Treiber

driver=org.neo4j.ogm.drivers.http.driver.HttpDriver