JAMES-2133 make cucumber faster by reusing cassandra container for several tests
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/833443ca Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/833443ca Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/833443ca Branch: refs/heads/master Commit: 833443caf8c674d71034fc74d14335076e0b5a97 Parents: 6c6cb53 Author: Matthieu Baechler <matth...@apache.org> Authored: Tue Aug 29 17:08:33 2017 +0200 Committer: Matthieu Baechler <matth...@apache.org> Committed: Sat Sep 2 07:58:48 2017 +0200 ---------------------------------------------------------------------- .../cucumber/CassandraDownloadCucumberTest.java | 12 +++++++++ .../CassandraGetMessagesMethodTest.java | 13 ++++++++++ ...ssandraIMAPSetMessagesCompatibilityTest.java | 13 ++++++++++ ...CassandraSetMailboxesMethodCucumberTest.java | 13 ++++++++++ .../cassandra/cucumber/CassandraStepdefs.java | 6 ++--- .../cucumber/CassandraUploadCucumberTest.java | 13 ++++++++++ .../cucumber/CucumberCassandraSingleton.java | 27 ++++++++++++++++++++ 7 files changed, 93 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraDownloadCucumberTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraDownloadCucumberTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraDownloadCucumberTest.java index e8c62e6..ee3c375 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraDownloadCucumberTest.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraDownloadCucumberTest.java @@ -19,6 +19,8 @@ package org.apache.james.jmap.cassandra.cucumber; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; @@ -30,4 +32,14 @@ import cucumber.api.junit.Cucumber; tags = {"~@Ignore"}, strict = true) public class CassandraDownloadCucumberTest { + + @BeforeClass + public static void init() { + CucumberCassandraSingleton.cassandraServer.start(); + } + + @AfterClass + public static void after() { + CucumberCassandraSingleton.cassandraServer.stop(); + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMessagesMethodTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMessagesMethodTest.java index f43d624..5e7fbbc 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMessagesMethodTest.java @@ -19,6 +19,8 @@ package org.apache.james.jmap.cassandra.cucumber; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; @@ -29,4 +31,15 @@ import cucumber.api.junit.Cucumber; glue={"org.apache.james.jmap.methods.integration", "org.apache.james.jmap.cassandra.cucumber"}, strict = true) public class CassandraGetMessagesMethodTest { + + @BeforeClass + public static void init() { + CucumberCassandraSingleton.cassandraServer.start(); + } + + @AfterClass + public static void after() { + CucumberCassandraSingleton.cassandraServer.stop(); + } + } http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraIMAPSetMessagesCompatibilityTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraIMAPSetMessagesCompatibilityTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraIMAPSetMessagesCompatibilityTest.java index 14dfa73..c0c4d17 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraIMAPSetMessagesCompatibilityTest.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraIMAPSetMessagesCompatibilityTest.java @@ -19,6 +19,8 @@ package org.apache.james.jmap.cassandra.cucumber; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; @@ -29,4 +31,15 @@ import cucumber.api.junit.Cucumber; glue={"org.apache.james.jmap.methods.integration", "org.apache.james.jmap.cassandra.cucumber"}, strict = true) public class CassandraIMAPSetMessagesCompatibilityTest { + + @BeforeClass + public static void init() { + CucumberCassandraSingleton.cassandraServer.start(); + } + + @AfterClass + public static void after() { + CucumberCassandraSingleton.cassandraServer.stop(); + } + } http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraSetMailboxesMethodCucumberTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraSetMailboxesMethodCucumberTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraSetMailboxesMethodCucumberTest.java index 3d0af24..c7ed001 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraSetMailboxesMethodCucumberTest.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraSetMailboxesMethodCucumberTest.java @@ -19,6 +19,8 @@ package org.apache.james.jmap.cassandra.cucumber; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; @@ -29,4 +31,15 @@ import cucumber.api.junit.Cucumber; glue={"org.apache.james.jmap.methods.integration", "org.apache.james.jmap.cassandra.cucumber"}, strict = true) public class CassandraSetMailboxesMethodCucumberTest { + + @BeforeClass + public static void init() { + CucumberCassandraSingleton.cassandraServer.start(); + } + + @AfterClass + public static void after() { + CucumberCassandraSingleton.cassandraServer.stop(); + } + } http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java index 34aef64..066dc75 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java @@ -47,7 +47,7 @@ public class CassandraStepdefs { private final MainStepdefs mainStepdefs; private TemporaryFolder temporaryFolder = new TemporaryFolder(); private EmbeddedElasticSearch embeddedElasticSearch = new EmbeddedElasticSearch(temporaryFolder, MailboxElasticsearchConstants.MAILBOX_INDEX); - private DockerCassandraRule cassandraServer = new DockerCassandraRule(); + private DockerCassandraRule cassandraServer = CucumberCassandraSingleton.cassandraServer; @Inject private CassandraStepdefs(MainStepdefs mainStepdefs) { @@ -58,7 +58,6 @@ public class CassandraStepdefs { public void init() throws Exception { temporaryFolder.create(); embeddedElasticSearch.before(); - cassandraServer.start(); mainStepdefs.messageIdFactory = new CassandraMessageId.Factory(); mainStepdefs.jmapServer = new GuiceJamesServer() .combineWith(CassandraJamesServerMain.cassandraServerModule, CassandraJamesServerMain.protocols) @@ -72,8 +71,7 @@ public class CassandraStepdefs { public void tearDown() { ignoreFailures(mainStepdefs::tearDown, () -> embeddedElasticSearch.after(), - () -> temporaryFolder.delete(), - () -> cassandraServer.stop()); + () -> temporaryFolder.delete()); } private void ignoreFailures(ThrowingRunnable... cleaners) { http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraUploadCucumberTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraUploadCucumberTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraUploadCucumberTest.java index 10e5d6c..8c9ef53 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraUploadCucumberTest.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraUploadCucumberTest.java @@ -19,6 +19,8 @@ package org.apache.james.jmap.cassandra.cucumber; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; @@ -30,4 +32,15 @@ import cucumber.api.junit.Cucumber; tags = {"~@Ignore"}, strict = true) public class CassandraUploadCucumberTest { + + @BeforeClass + public static void init() { + CucumberCassandraSingleton.cassandraServer.start(); + } + + @AfterClass + public static void after() { + CucumberCassandraSingleton.cassandraServer.stop(); + } + } http://git-wip-us.apache.org/repos/asf/james-project/blob/833443ca/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberCassandraSingleton.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberCassandraSingleton.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberCassandraSingleton.java new file mode 100644 index 0000000..2d963e5 --- /dev/null +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberCassandraSingleton.java @@ -0,0 +1,27 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ +package org.apache.james.jmap.cassandra.cucumber; + +import org.apache.james.backends.cassandra.DockerCassandraRule; + +public class CucumberCassandraSingleton { + + public static DockerCassandraRule cassandraServer = new DockerCassandraRule(); + +} --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org