SDN 4.1 - Многопоточный Neo4j TestServer для параллельного выполнения тестовых случаев

Я использую org.neo4j.ogm.testutil.TestServer и драйвер http для интеграционного тестирования вместо встроенного драйвера, потому что мне нравится, как TestServer предоставляет интерфейс на основе браузера, чтобы видеть, что происходит с каждым тестом.

Однако - мои тесты занимают целую вечность! Сборка занимает около 30 минут на достаточно быстрой машине.

Что я хотел бы сделать, так это использовать плагин maven surefire для параллельного выполнения моих тестовых примеров.

Думаю, для этого мне потребуется запустить несколько экземпляров neo4j TestServer, каждый на своем порту.

Где лучше всего это сделать с помощью neo4j 4.1? Я предполагаю, что методы @Before и @After (для выключения) моих тестовых случаев? (возможно, извлечен в суперкласс?)

Кроме того, как мне получить текущий порт для текущего тестового контекста в каждом модульном тесте?

Любые предложения о том, как это сделать, будут очень признательны :)


person John Deverall    schedule 25.07.2016    source источник


Ответы (1)


Взгляните на org.neo4j.ogm.testutil.MultiDriverTestClass, который настраивает драйвер с помощью TestServer. TestServer в любом случае должен выбрать доступный порт, что должно решить проблему их параллельной настройки. Фактически, вы можете просто расширить свой тестовый класс org.neo4j.ogm.testutil.MultiDriverTestClass (большинство тестов в org.neo4j.ogm.persistence.examples делают это) и предоставить файл ogm.properties, который указывает, что драйвер, который будет использоваться, является драйвером HTTP.

driver=org.neo4j.ogm.drivers.http.driver.HttpDriver
person Luanne    schedule 25.07.2016