diff --git a/tests/setup_gate.sh b/tests/setup_gate.sh
index 26d4f279e26711b6c02b816be1cd7f476332d5a9..a408904c69a508e6d01e6b93e21feb75cd2c4348 100755
--- a/tests/setup_gate.sh
+++ b/tests/setup_gate.sh
@@ -18,7 +18,7 @@ function setup_openstack_clients {
         packages+=(python-ironicclient python-ironic-inspector-client)
     fi
     if [[ $SCENARIO == magnum ]]; then
-        packages+=(python-designateclient python-magnumclient python-octaviaclient)
+        packages+=(python-designateclient python-magnumclient python-octaviaclient python-troveclient)
     fi
     if [[ $SCENARIO == masakari ]]; then
         packages+=(python-masakariclient)
@@ -63,7 +63,7 @@ function prepare_images {
         GATE_IMAGES+=",^dnsmasq,^ironic,^iscsid"
     fi
     if [[ $SCENARIO == "magnum" ]]; then
-        GATE_IMAGES+=",^designate,^magnum,^octavia"
+        GATE_IMAGES+=",^designate,^magnum,^octavia,^trove"
     fi
     if [[ $SCENARIO == "masakari" ]]; then
         GATE_IMAGES+=",^masakari"
diff --git a/tests/templates/globals-default.j2 b/tests/templates/globals-default.j2
index d593a87731a577a56c375b4cda17dbf0bb21e3d2..e414a12d592a9a1c4ec5e56befaa635b69eb40d1 100644
--- a/tests/templates/globals-default.j2
+++ b/tests/templates/globals-default.j2
@@ -154,5 +154,6 @@ enable_prometheus_openstack_exporter: "no"
 {% if scenario == "magnum" %}
 enable_designate: "yes"
 enable_magnum: "yes"
+enable_trove: "yes"
 enable_octavia: "yes"
 {% endif %}
diff --git a/tests/test-magnum.sh b/tests/test-magnum.sh
index bd43dd9451217e4c6713e3eaeafc7c3d1c854459..6919f675da0e5cf123ee562f43ba620ef5b44ef4 100755
--- a/tests/test-magnum.sh
+++ b/tests/test-magnum.sh
@@ -18,6 +18,12 @@ function test_octavia {
     openstack loadbalancer list
 }
 
+function test_trove {
+  # smoke test
+    openstack database instance list
+    openstack database cluster list
+}
+
 function test_designate {
     # Smoke test.
     openstack zone list --all
@@ -62,16 +68,17 @@ function test_magnum_logged {
     test_magnum_clusters
     test_octavia
     test_designate
+    test_trove
 }
 
 function test_magnum {
-    echo "Testing Magnum, Octavia and Designate"
+    echo "Testing Magnum, Octavia, Trove and Designate"
     test_magnum_logged > /tmp/logs/ansible/test-magnum 2>&1
     result=$?
     if [[ $result != 0 ]]; then
-        echo "Testing Magnum, Octavia and Designate failed. See ansible/test-magnum for details"
+        echo "Testing Magnum, Octavia, Trove and Designate failed. See ansible/test-magnum for details"
     else
-        echo "Successfully tested Magnum, Octavia and Designate . See ansible/test-magnum for details"
+        echo "Successfully tested Magnum, Octavia, Trove and Designate . See ansible/test-magnum for details"
     fi
     return $result
 }
diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml
index d0b86c752a7716f68ab648f509faa6fa0a5a9d98..9a8b18b7dec648b1cd038b60abbe76af115d9f13 100644
--- a/zuul.d/base.yaml
+++ b/zuul.d/base.yaml
@@ -132,7 +132,7 @@
     parent: kolla-ansible-base
     voting: false
     files:
-      - ^ansible/roles/(designate|magnum|octavia|octavia-certificates)/
+      - ^ansible/roles/(designate|magnum|octavia|octavia-certificates|trove)/
       - ^tests/test-dashboard.sh
       - ^tests/test-magnum.sh
     vars: