diff --git a/web/api/src/test/java/org/onosproject/rest/resources/ResourceTest.java b/web/api/src/test/java/org/onosproject/rest/resources/ResourceTest.java
index 1d2bb12..465f25c 100644
--- a/web/api/src/test/java/org/onosproject/rest/resources/ResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/resources/ResourceTest.java
@@ -18,15 +18,39 @@
 import org.glassfish.jersey.server.ResourceConfig;
 import org.glassfish.jersey.test.JerseyTest;
 
+import java.io.IOException;
+import java.net.ServerSocket;
+
 /**
  * Base class for REST API tests.  Performs common configuration operations.
  */
 public class ResourceTest extends JerseyTest {
+    private static final int DEFAULT_PORT = 9998;
 
     /**
      * Creates a new web-resource test.
      */
     public ResourceTest() {
         super(ResourceConfig.forApplicationClass(CoreWebApplication.class));
+        this.set("jersey.config.test.container.port", getRandomPort(DEFAULT_PORT));
+    }
+
+    /**
+     * Returns an unused port number to make sure that each unit test runs in
+     * different port number.
+     *
+     * @param defaultPort default port number
+     * @return a randomized unique port number
+     */
+    private int getRandomPort(int defaultPort) {
+        try {
+            ServerSocket socket = new ServerSocket(0);
+            socket.setReuseAddress(true);
+            int port = socket.getLocalPort();
+            socket.close();
+            return port;
+        } catch (IOException ioe) {
+            return defaultPort;
+        }
     }
 }
