SDN 4.1 - 用于并行执行测试用例的多线程 Neo4j TestServer

SDN 4.1 - Multithreading Neo4j TestServer for parallel execution of test cases

我正在使用 org.neo4j.ogm.testutil.TestServer 和 http 驱动程序而不是嵌入式驱动程序进行集成测试,因为我喜欢 TestServer 提供基于浏览器的界面来查看每个测试发生了什么的方式。

但是 - 我的测试需要很长时间!在一台相当快的机器上构建最多需要 30 分钟左右。

我想做的是使用 maven surefire 插件并行执行我的测试用例。

为此,我想我需要能够启动多个 neo4j TestServer 实例,每个实例都在不同的端口上。

使用 neo4j 4.1 执行此操作的最佳位置在哪里?我假设我的测试用例的@Before 和@After(用于关闭)方法? (可能提取成超class?)

此外,如何将当前测试上下文的当前端口获取到每个单元测试中?

任何有关如何解决此问题的建议将不胜感激:)

查看 org.neo4j.ogm.testutil.MultiDriverTestClass 使用 TestServer 设置驱动程序。 无论如何,TestServer 应该选择一个可用端口,这应该可以解决您并行设置这些端口的问题。事实上,您可以让您的测试 class 扩展 org.neo4j.ogm.testutil.MultiDriverTestClass(org.neo4j.ogm.persistence.examples 中的大多数测试都这样做)并提供一个 ogm.properties 文件来指定驱动程序要使用的是 HTTP 驱动程序

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