diff --git a/drivers/bti/BUCK b/drivers/bti/BUCK
index 90ab148..b80854c 100644
--- a/drivers/bti/BUCK
+++ b/drivers/bti/BUCK
@@ -8,8 +8,14 @@
     '//lib:mibs-net-snmp',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/bti/src/test/java/org/onosproject/drivers/bti/BtiDriversLoaderTest.java b/drivers/bti/src/test/java/org/onosproject/drivers/bti/BtiDriversLoaderTest.java
new file mode 100644
index 0000000..b90c82e
--- /dev/null
+++ b/drivers/bti/src/test/java/org/onosproject/drivers/bti/BtiDriversLoaderTest.java
@@ -0,0 +1,16 @@
+package org.onosproject.drivers.bti;
+
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * BTI Drivers loader test.
+ */
+public class BtiDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new BtiDriversLoader();
+    }
+}
diff --git a/drivers/ciena/BUCK b/drivers/ciena/BUCK
index 6537ee6..b340270 100644
--- a/drivers/ciena/BUCK
+++ b/drivers/ciena/BUCK
@@ -6,8 +6,14 @@
     '//protocols/rest/api:onos-protocols-rest-api',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/ciena/src/test/java/org/onosproject/drivers/ciena/CienaDriversLoaderTest.java b/drivers/ciena/src/test/java/org/onosproject/drivers/ciena/CienaDriversLoaderTest.java
new file mode 100644
index 0000000..4513da1
--- /dev/null
+++ b/drivers/ciena/src/test/java/org/onosproject/drivers/ciena/CienaDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.ciena;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Ciena drivers loader test.
+ */
+public class CienaDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new CienaDriversLoader();
+    }
+}
diff --git a/drivers/cisco/BUCK b/drivers/cisco/BUCK
index b5dbef5..c850e9d 100644
--- a/drivers/cisco/BUCK
+++ b/drivers/cisco/BUCK
@@ -4,8 +4,14 @@
     '//protocols/netconf/api:onos-protocols-netconf-api',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/CiscoDriversLoaderTest.java b/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/CiscoDriversLoaderTest.java
new file mode 100644
index 0000000..ef38134
--- /dev/null
+++ b/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/CiscoDriversLoaderTest.java
@@ -0,0 +1,16 @@
+package org.onosproject.drivers.cisco;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+
+/**
+ * Cisco drivers loader test.
+ */
+public class CiscoDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new CiscoDriversLoader();
+    }
+}
diff --git a/drivers/corsa/BUCK b/drivers/corsa/BUCK
index 3fc9d5d..73a2549 100644
--- a/drivers/corsa/BUCK
+++ b/drivers/corsa/BUCK
@@ -5,8 +5,14 @@
     '//protocols/openflow/api:onos-protocols-openflow-api',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/corsa/src/test/java/org/onosproject/drivers/corsa/CorsaDriversLoaderTest.java b/drivers/corsa/src/test/java/org/onosproject/drivers/corsa/CorsaDriversLoaderTest.java
new file mode 100644
index 0000000..3c3ccda
--- /dev/null
+++ b/drivers/corsa/src/test/java/org/onosproject/drivers/corsa/CorsaDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.corsa;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Corsa drivers loader test.
+ */
+public class CorsaDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new CorsaDriversLoader();
+    }
+}
diff --git a/drivers/default/BUCK b/drivers/default/BUCK
index e64db2d..f132524 100644
--- a/drivers/default/BUCK
+++ b/drivers/default/BUCK
@@ -6,8 +6,14 @@
     '//core/store/serializers:onos-core-serializers',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/default/src/test/java/org/onosproject/driver/DefaultDriversLoaderTest.java b/drivers/default/src/test/java/org/onosproject/driver/DefaultDriversLoaderTest.java
new file mode 100644
index 0000000..08c4b9d
--- /dev/null
+++ b/drivers/default/src/test/java/org/onosproject/driver/DefaultDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.driver;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Default drivers loader test.
+ */
+public class DefaultDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new DefaultDriversLoader();
+    }
+}
diff --git a/drivers/fujitsu/BUCK b/drivers/fujitsu/BUCK
index 0ea201d..64893d0 100644
--- a/drivers/fujitsu/BUCK
+++ b/drivers/fujitsu/BUCK
@@ -4,8 +4,14 @@
     '//protocols/netconf/api:onos-protocols-netconf-api',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/fujitsu/src/test/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoaderTest.java b/drivers/fujitsu/src/test/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoaderTest.java
new file mode 100644
index 0000000..9b366d8
--- /dev/null
+++ b/drivers/fujitsu/src/test/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.fujitsu;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Fujistu driver loader test.
+ */
+public class FujitsuDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new FujitsuDriversLoader();
+    }
+}
diff --git a/drivers/lumentum/BUCK b/drivers/lumentum/BUCK
index 768feac..e2df8fa 100644
--- a/drivers/lumentum/BUCK
+++ b/drivers/lumentum/BUCK
@@ -6,8 +6,14 @@
     '//incubator/api:onos-incubator-api',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/lumentum/src/test/java/org/onosproject/drivers/lumentum/LumentumDriversLoaderTest.java b/drivers/lumentum/src/test/java/org/onosproject/drivers/lumentum/LumentumDriversLoaderTest.java
new file mode 100644
index 0000000..1723337
--- /dev/null
+++ b/drivers/lumentum/src/test/java/org/onosproject/drivers/lumentum/LumentumDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.lumentum;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Lumentum drivers loader test.
+ */
+public class LumentumDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new LumentumDriversLoader();
+    }
+}
diff --git a/drivers/netconf/BUCK b/drivers/netconf/BUCK
index 577d01e..2924b97 100644
--- a/drivers/netconf/BUCK
+++ b/drivers/netconf/BUCK
@@ -4,8 +4,14 @@
     '//protocols/netconf/api:onos-protocols-netconf-api',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/netconf/src/test/java/org/onosproject/drivers/netconf/NetconfDriversLoaderTest.java b/drivers/netconf/src/test/java/org/onosproject/drivers/netconf/NetconfDriversLoaderTest.java
new file mode 100644
index 0000000..2af8d11
--- /dev/null
+++ b/drivers/netconf/src/test/java/org/onosproject/drivers/netconf/NetconfDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.netconf;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Netconf drivers loader test.
+ */
+public class NetconfDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new NetconfDriversLoader();
+    }
+}
diff --git a/drivers/optical/BUCK b/drivers/optical/BUCK
index 23ee9b7..98eb012 100644
--- a/drivers/optical/BUCK
+++ b/drivers/optical/BUCK
@@ -5,8 +5,14 @@
     '//drivers/default:onos-drivers-default',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//core/api:onos-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
     resources_root = 'src/main/resources',
     resources = glob(['src/main/resources/**']),
 )
diff --git a/drivers/optical/src/test/java/org/onosproject/drivers/optical/OpticalDriversLoaderTest.java b/drivers/optical/src/test/java/org/onosproject/drivers/optical/OpticalDriversLoaderTest.java
new file mode 100644
index 0000000..ddec363
--- /dev/null
+++ b/drivers/optical/src/test/java/org/onosproject/drivers/optical/OpticalDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.optical;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * Optical drivers loader test.
+ */
+public class OpticalDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new OpticalDriversLoader();
+    }
+}
diff --git a/drivers/ovsdb/src/test/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoaderTest.java b/drivers/ovsdb/src/test/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoaderTest.java
new file mode 100644
index 0000000..0bee8db
--- /dev/null
+++ b/drivers/ovsdb/src/test/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoaderTest.java
@@ -0,0 +1,15 @@
+package org.onosproject.drivers.ovsdb;
+
+import org.junit.Before;
+import org.onosproject.net.driver.AbstractDriverLoaderTest;
+
+/**
+ * OVSDB drivers loader test.
+ */
+public class OvsdbDriversLoaderTest extends AbstractDriverLoaderTest {
+
+    @Before
+    public void setUp() {
+        loader = new OvsdbDriversLoader();
+    }
+}
