diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/common.go b/acceptance/openstack/networking/v2/extensions/lbaas/common.go
index 891b2d2..a9db1af 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/common.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/common.go
@@ -4,6 +4,7 @@
 	"testing"
 
 	base "github.com/rackspace/gophercloud/acceptance/openstack/networking/v2"
+	"github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/monitors"
 	"github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/pools"
 	"github.com/rackspace/gophercloud/openstack/networking/v2/networks"
 	"github.com/rackspace/gophercloud/openstack/networking/v2/subnets"
@@ -57,3 +58,21 @@
 	th.AssertNoErr(t, res.Err)
 	t.Logf("Deleted pool %s", poolID)
 }
+
+func CreateMonitor(t *testing.T) string {
+	m, err := monitors.Create(base.Client, monitors.CreateOpts{
+		Delay:         5,
+		Timeout:       10,
+		MaxRetries:    3,
+		Type:          monitors.TypeHTTP,
+		ExpectedCodes: "200",
+		URLPath:       "/login",
+		HTTPMethod:    "GET",
+	}).Extract()
+
+	th.AssertNoErr(t, err)
+
+	t.Logf("Created monitor ID [%s]", m.ID)
+
+	return m.ID
+}
diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/member_test.go b/acceptance/openstack/networking/v2/extensions/lbaas/member_test.go
index b09677e..b2216b6 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/member_test.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/member_test.go
@@ -1,4 +1,4 @@
-// +build acceptance networking lbaasmember
+// +build acceptance networking lbaas lbaasmember
 
 package lbaas
 
diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go b/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go
index 54c6dc9..57e860c 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/monitor_test.go
@@ -1,4 +1,4 @@
-// +build acceptance networking lbaasmonitor
+// +build acceptance networking lbaas lbaasmonitor
 
 package lbaas
 
@@ -16,7 +16,7 @@
 	defer base.Teardown()
 
 	// create monitor
-	monitorID := createMonitor(t)
+	monitorID := CreateMonitor(t)
 
 	// list monitors
 	listMonitors(t)
@@ -50,24 +50,6 @@
 	th.AssertNoErr(t, err)
 }
 
-func createMonitor(t *testing.T) string {
-	m, err := monitors.Create(base.Client, monitors.CreateOpts{
-		Delay:         5,
-		Timeout:       10,
-		MaxRetries:    3,
-		Type:          monitors.TypeHTTP,
-		ExpectedCodes: "200",
-		URLPath:       "/login",
-		HTTPMethod:    "GET",
-	}).Extract()
-
-	th.AssertNoErr(t, err)
-
-	t.Logf("Created monitor ID [%s]", m.ID)
-
-	return m.ID
-}
-
 func updateMonitor(t *testing.T, monitorID string) {
 	opts := monitors.UpdateOpts{Delay: 5, Timeout: 10, MaxRetries: 3}
 	m, err := monitors.Update(base.Client, monitorID, opts).Extract()
diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/pool_test.go b/acceptance/openstack/networking/v2/extensions/lbaas/pool_test.go
index 9182565..8194064 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/pool_test.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/pool_test.go
@@ -1,4 +1,4 @@
-// +build acceptance networking lbaaspool
+// +build acceptance networking lbaas lbaaspool
 
 package lbaas
 
@@ -30,9 +30,14 @@
 	// get pool
 	getPool(t, poolID)
 
+	// create monitor
+	monitorID := CreateMonitor(t)
+
 	// associate health monitor
+	associateMonitor(t, poolID, monitorID)
 
 	// disassociate health monitor
+	disassociateMonitor(t, poolID, monitorID)
 
 	// delete pool
 	DeletePool(t, poolID)
@@ -75,3 +80,19 @@
 
 	t.Logf("Getting pool ID [%s]", p.ID)
 }
+
+func associateMonitor(t *testing.T, poolID, monitorID string) {
+	res := pools.AssociateMonitor(base.Client, poolID, monitorID)
+
+	th.AssertNoErr(t, res.Err)
+
+	t.Logf("Associated pool %s with monitor %s", poolID, monitorID)
+}
+
+func disassociateMonitor(t *testing.T, poolID, monitorID string) {
+	res := pools.DisassociateMonitor(base.Client, poolID, monitorID)
+
+	th.AssertNoErr(t, res.Err)
+
+	t.Logf("Disassociated pool %s with monitor %s", poolID, monitorID)
+}
diff --git a/acceptance/openstack/networking/v2/extensions/lbaas/vip_test.go b/acceptance/openstack/networking/v2/extensions/lbaas/vip_test.go
index 9e3a9d0..c8dff2d 100644
--- a/acceptance/openstack/networking/v2/extensions/lbaas/vip_test.go
+++ b/acceptance/openstack/networking/v2/extensions/lbaas/vip_test.go
@@ -1,4 +1,4 @@
-// +build acceptance networking lbaasvip
+// +build acceptance networking lbaas lbaasvip
 
 package lbaas
 
