JAMES-2334 avoid starting many dockers rabbitmq while only need one RabbitMQTest and each nested class invokes rabbitMQExtension.beforeAll() for their own. This leads to starting one docker rabbit for each test class. Some moments, there are 3 dockers rabbit are up.
This commit addresses this issue by starting only one docker rabbit for whole test. I reused RabbitMQExtension and ignore beforeAll, afterAll callbacks and move them to RabbitMQTest level. Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c53b0ce8 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c53b0ce8 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c53b0ce8 Branch: refs/heads/master Commit: c53b0ce8ed72c604d30b4cb6f5195359eb4e1f3b Parents: e7f28f0 Author: duc <dt...@linagora.com> Authored: Mon Oct 22 11:36:45 2018 +0700 Committer: Benoit Tellier <btell...@linagora.com> Committed: Wed Oct 24 08:48:31 2018 +0700 ---------------------------------------------------------------------- .../james/backend/rabbitmq/RabbitMQTest.java | 38 ++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/c53b0ce8/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java ---------------------------------------------------------------------- diff --git a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java index c77bb50..adfa43e 100644 --- a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java +++ b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java @@ -37,11 +37,14 @@ import java.util.Queue; import java.util.concurrent.TimeoutException; import java.util.stream.IntStream; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.RegisterExtension; import com.github.fge.lambdas.Throwing; import com.github.steveash.guavate.Guavate; @@ -52,9 +55,40 @@ import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; -@ExtendWith(RabbitMQExtension.class) class RabbitMQTest { + private static class RabbitMQNestedTestExtension extends RabbitMQExtension { + + @Override + public void beforeAll(ExtensionContext context) { + } + + void beforeAll() { + super.beforeAll(null); + } + + @Override + public void afterAll(ExtensionContext extensionContext) { + } + + void afterAll() { + super.afterAll(null); + } + } + + @RegisterExtension + static RabbitMQNestedTestExtension testExtension = new RabbitMQNestedTestExtension(); + + @BeforeAll + static void setup() { + testExtension.beforeAll(); + } + + @AfterAll + static void tearDown() { + testExtension.afterAll(); + } + @Nested class SingleConsumerTest { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org