From ea72d6b2966d6fd600403ae15cfd79813c13cc73 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 20 Oct 2014 10:53:51 +0200 Subject: [PATCH 1/2] Allow fast tests to execute during standard build Use TestNG's test groups feature to distinguish between fast, self contained unit tests and slow integration tests that access external services. Move the latter ones to the integration test phase and disable them by default. --- README.md | 9 +++- pom.xml | 46 ++++++++++++++----- .../dockerjava/client/DockerClientTest.java | 1 + .../core/command/AuthCmdImplTest.java | 1 + .../core/command/BuildImageCmdImplTest.java | 1 + .../core/command/CommitCmdImplTest.java | 1 + .../command/ContainerDiffCmdImplTest.java | 1 + .../CopyFileFromContainerCmdImplTest.java | 1 + .../command/CreateContainerCmdImplTest.java | 1 + .../core/command/EventsCmdImplTest.java | 1 + .../core/command/InfoCmdImplTest.java | 1 + .../command/KillContainerCmdImplTest.java | 1 + .../command/ListContainersCmdImplTest.java | 1 + .../core/command/ListImagesCmdImplTest.java | 1 + .../core/command/LogContainerCmdImplTest.java | 1 + .../core/command/PullImageCmdImplTest.java | 1 + .../core/command/PushImageCmdImplTest.java | 1 + .../command/RemoveContainerCmdImplTest.java | 1 + .../core/command/RemoveImageCmdImplTest.java | 1 + .../command/RestartContainerCmdImplTest.java | 1 + .../core/command/SearchImagesCmdImplTest.java | 1 + .../command/StartContainerCmdImplTest.java | 2 +- .../command/StopContainerCmdImplTest.java | 1 + .../core/command/TagImageCmdImplTest.java | 1 + .../core/command/VersionCmdImplTest.java | 1 + .../command/WaitContainerCmdImplTest.java | 1 + 26 files changed, 65 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index f4ce58f89..3e9a6649f 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,14 @@ Developer forum for [docker-java](https://groups.google.com/forum/?hl=de#!forum/ * Maven 3.0.5 * Docker daemon running -Maven may run tests during build process but tests are disabled by default. The tests are using a localhost instance of Docker, make sure that you have Docker running for tests to work. To run the tests you have to provide your https://www.docker.io/account/login/ information: +Some of the tests are using a localhost instance of Docker and require manual setup. +In order to enable an easy standard build, these integration tests are disabled by default. - $ mvn clean install -DskipTests=false -Ddocker.io.username=... -Ddocker.io.password=... -Ddocker.io.email=... +To run the full set of tests, make sure you have a local Docker daemon running and hten provide your https://registry.hub.docker.com/account/login/ information via system properties: + + $ mvn clean install -DskipITs=false -Ddocker.io.username=... -Ddocker.io.password=... -Ddocker.io.email=... + +If you are using a remote Docker server, add its URL like this: `-Ddocker.io.url=http://...:2375`. By default Docker server is using UNIX sockets for communication with the Docker client, however docker-java client uses TCP/IP to connect to the Docker server, so you will need to make sure that your Docker server is diff --git a/pom.xml b/pom.xml index 13c71b63f..3e4c9f9ad 100644 --- a/pom.xml +++ b/pom.xml @@ -40,9 +40,10 @@ - true + true UTF-8 + UTF-8 true false 1.6 @@ -76,7 +77,8 @@ 2.2 2.3.1 2.3.1 - 2.8.1 + 2.17 + 2.17 2.5.1 1.7 @@ -255,16 +257,6 @@ - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - ${skipTests} - - - - org.codehaus.mojo cobertura-maven-plugin @@ -329,6 +321,36 @@ deploy nexus-staging:release + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + integration + + + + + org.apache.maven.plugins + maven-failsafe-plugin + ${maven-failsafe-plugin.version} + + + + integration-test + verify + + + ${skipITs} + integration + + **/*Test.java + + + + + diff --git a/src/test/java/com/github/dockerjava/client/DockerClientTest.java b/src/test/java/com/github/dockerjava/client/DockerClientTest.java index b06ded001..e5bef57d3 100644 --- a/src/test/java/com/github/dockerjava/client/DockerClientTest.java +++ b/src/test/java/com/github/dockerjava/client/DockerClientTest.java @@ -22,6 +22,7 @@ * * @author Konstantin Pelykh (kpelykh@gmail.com) */ +@Test(groups = "integration") public class DockerClientTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory .getLogger(DockerClientTest.class); diff --git a/src/test/java/com/github/dockerjava/core/command/AuthCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/AuthCmdImplTest.java index 5645ccc0b..3c03b1b43 100644 --- a/src/test/java/com/github/dockerjava/core/command/AuthCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/AuthCmdImplTest.java @@ -16,6 +16,7 @@ import com.github.dockerjava.core.DockerClientBuilder; import com.github.dockerjava.core.DockerClientConfig; +@Test(groups = "integration") public class AuthCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java index 353fea12d..62603706d 100644 --- a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java @@ -28,6 +28,7 @@ import com.github.dockerjava.api.command.InspectImageResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class BuildImageCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/CommitCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CommitCmdImplTest.java index f4a603ff4..ea5f6128d 100644 --- a/src/test/java/com/github/dockerjava/core/command/CommitCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CommitCmdImplTest.java @@ -22,6 +22,7 @@ import com.github.dockerjava.api.command.InspectImageResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class CommitCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/ContainerDiffCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/ContainerDiffCmdImplTest.java index 60ad22a42..8d6f92545 100644 --- a/src/test/java/com/github/dockerjava/core/command/ContainerDiffCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/ContainerDiffCmdImplTest.java @@ -23,6 +23,7 @@ import com.github.dockerjava.api.model.ChangeLog; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class ContainerDiffCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImplTest.java index 045a13309..945b61983 100644 --- a/src/test/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImplTest.java @@ -13,6 +13,7 @@ import static org.hamcrest.Matchers.*; import static org.hamcrest.MatcherAssert.assertThat; +@Test(groups = "integration") public class CopyFileFromContainerCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java index 1320784c8..284fd7727 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -21,6 +21,7 @@ import com.github.dockerjava.api.model.Volume; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class CreateContainerCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/EventsCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/EventsCmdImplTest.java index fc66daa54..5c33a30ff 100644 --- a/src/test/java/com/github/dockerjava/core/command/EventsCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/EventsCmdImplTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; +@Test(groups = "integration") public class EventsCmdImplTest extends AbstractDockerClientTest { private static int KNOWN_NUM_EVENTS = 4; diff --git a/src/test/java/com/github/dockerjava/core/command/InfoCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/InfoCmdImplTest.java index cbd55697f..37214418c 100644 --- a/src/test/java/com/github/dockerjava/core/command/InfoCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/InfoCmdImplTest.java @@ -18,6 +18,7 @@ import static org.hamcrest.Matchers.isEmptyOrNullString; import static org.hamcrest.Matchers.not; +@Test(groups = "integration") public class InfoCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/KillContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/KillContainerCmdImplTest.java index 5203bd3a7..419d6e029 100644 --- a/src/test/java/com/github/dockerjava/core/command/KillContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/KillContainerCmdImplTest.java @@ -23,6 +23,7 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class KillContainerCmdImplTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory diff --git a/src/test/java/com/github/dockerjava/core/command/ListContainersCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/ListContainersCmdImplTest.java index 49b61aab7..f73ac5e4b 100644 --- a/src/test/java/com/github/dockerjava/core/command/ListContainersCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/ListContainersCmdImplTest.java @@ -28,6 +28,7 @@ import com.github.dockerjava.api.model.Container; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class ListContainersCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/ListImagesCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/ListImagesCmdImplTest.java index 3d892b0fe..b2f3b88e9 100644 --- a/src/test/java/com/github/dockerjava/core/command/ListImagesCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/ListImagesCmdImplTest.java @@ -18,6 +18,7 @@ import com.github.dockerjava.api.model.Info; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class ListImagesCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/LogContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/LogContainerCmdImplTest.java index 081037039..842992198 100644 --- a/src/test/java/com/github/dockerjava/core/command/LogContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/LogContainerCmdImplTest.java @@ -21,6 +21,7 @@ import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class LogContainerCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/PullImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/PullImageCmdImplTest.java index d44638f4f..404abd4e2 100644 --- a/src/test/java/com/github/dockerjava/core/command/PullImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/PullImageCmdImplTest.java @@ -22,6 +22,7 @@ import com.github.dockerjava.api.model.Info; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class PullImageCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/PushImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/PushImageCmdImplTest.java index bef220c48..b12ac4ec2 100644 --- a/src/test/java/com/github/dockerjava/core/command/PushImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/PushImageCmdImplTest.java @@ -20,6 +20,7 @@ import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class PushImageCmdImplTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory diff --git a/src/test/java/com/github/dockerjava/core/command/RemoveContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/RemoveContainerCmdImplTest.java index ba850d354..9c23d70e2 100644 --- a/src/test/java/com/github/dockerjava/core/command/RemoveContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/RemoveContainerCmdImplTest.java @@ -25,6 +25,7 @@ import com.github.dockerjava.api.model.Container; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class RemoveContainerCmdImplTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory diff --git a/src/test/java/com/github/dockerjava/core/command/RemoveImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/RemoveImageCmdImplTest.java index 1b6d5cc79..ec6b6ec36 100644 --- a/src/test/java/com/github/dockerjava/core/command/RemoveImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/RemoveImageCmdImplTest.java @@ -26,6 +26,7 @@ import com.github.dockerjava.api.model.Container; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class RemoveImageCmdImplTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory diff --git a/src/test/java/com/github/dockerjava/core/command/RestartContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/RestartContainerCmdImplTest.java index c63d1175b..b6040a0ff 100644 --- a/src/test/java/com/github/dockerjava/core/command/RestartContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/RestartContainerCmdImplTest.java @@ -21,6 +21,7 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class RestartContainerCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/SearchImagesCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/SearchImagesCmdImplTest.java index 5d9f60f0e..5c2393534 100644 --- a/src/test/java/com/github/dockerjava/core/command/SearchImagesCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/SearchImagesCmdImplTest.java @@ -22,6 +22,7 @@ import com.github.dockerjava.api.model.SearchItem; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class SearchImagesCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java index 2c72c444d..e5ceff826 100644 --- a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java @@ -28,7 +28,7 @@ import com.github.dockerjava.client.AbstractDockerClientTest; - +@Test(groups = "integration") public class StartContainerCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/StopContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/StopContainerCmdImplTest.java index 9824215eb..d46814281 100644 --- a/src/test/java/com/github/dockerjava/core/command/StopContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/StopContainerCmdImplTest.java @@ -23,6 +23,7 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class StopContainerCmdImplTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory diff --git a/src/test/java/com/github/dockerjava/core/command/TagImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/TagImageCmdImplTest.java index 68081ac34..97f422f28 100644 --- a/src/test/java/com/github/dockerjava/core/command/TagImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/TagImageCmdImplTest.java @@ -16,6 +16,7 @@ import com.github.dockerjava.api.NotFoundException; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class TagImageCmdImplTest extends AbstractDockerClientTest { public static final Logger LOG = LoggerFactory diff --git a/src/test/java/com/github/dockerjava/core/command/VersionCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/VersionCmdImplTest.java index 0f9883eec..8c9064346 100644 --- a/src/test/java/com/github/dockerjava/core/command/VersionCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/VersionCmdImplTest.java @@ -14,6 +14,7 @@ import com.github.dockerjava.api.model.Version; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class VersionCmdImplTest extends AbstractDockerClientTest { @BeforeTest diff --git a/src/test/java/com/github/dockerjava/core/command/WaitContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/WaitContainerCmdImplTest.java index 643118035..25bc5a42f 100644 --- a/src/test/java/com/github/dockerjava/core/command/WaitContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/WaitContainerCmdImplTest.java @@ -21,6 +21,7 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.client.AbstractDockerClientTest; +@Test(groups = "integration") public class WaitContainerCmdImplTest extends AbstractDockerClientTest { @BeforeTest From 843600dd4ce5ed2fd33de14bd8dd9f618918164e Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 20 Oct 2014 12:35:02 +0200 Subject: [PATCH 2/2] Run all tests by default, integration tests can be disabled. This changes the build to a more standard Maven way. --- README.md | 11 ++++++----- pom.xml | 3 --- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3e9a6649f..471c81325 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,15 @@ Developer forum for [docker-java](https://groups.google.com/forum/?hl=de#!forum/ * Maven 3.0.5 * Docker daemon running -Some of the tests are using a localhost instance of Docker and require manual setup. -In order to enable an easy standard build, these integration tests are disabled by default. +The Maven build includes integration tests which are using a localhost instance of Docker and require manual setup. Make sure you have a local Docker daemon running and then provide your https://registry.hub.docker.com/account/login/ information via system properties: -To run the full set of tests, make sure you have a local Docker daemon running and hten provide your https://registry.hub.docker.com/account/login/ information via system properties: + $ mvn clean install -Ddocker.io.username=... -Ddocker.io.password=... -Ddocker.io.email=... - $ mvn clean install -DskipITs=false -Ddocker.io.username=... -Ddocker.io.password=... -Ddocker.io.email=... +_If your Docker server is remote, add its URL like this: `-Ddocker.io.url=http://...:2375`._ -If you are using a remote Docker server, add its URL like this: `-Ddocker.io.url=http://...:2375`. +If you do not have access to a Docker server or just want to execute the build quickly, you can run the build without the integration tests: + + $ mvn clean install -DskipITs By default Docker server is using UNIX sockets for communication with the Docker client, however docker-java client uses TCP/IP to connect to the Docker server, so you will need to make sure that your Docker server is diff --git a/pom.xml b/pom.xml index 3e4c9f9ad..bac576999 100644 --- a/pom.xml +++ b/pom.xml @@ -40,8 +40,6 @@ - true - UTF-8 UTF-8 true @@ -342,7 +340,6 @@ verify - ${skipITs} integration **/*Test.java