diff --git a/oslo/messaging/_executors/impl_eventlet.py b/oslo/messaging/_executors/impl_eventlet.py
index 229238b80..fb70dff49 100644
--- a/oslo/messaging/_executors/impl_eventlet.py
+++ b/oslo/messaging/_executors/impl_eventlet.py
@@ -57,6 +57,8 @@ def spawn_with(ctxt, pool):
     thread = pool.spawn(callback)
     thread.link(complete, ctxt.__exit__)
 
+    return thread
+
 
 class EventletExecutor(base.ExecutorBase):
 
diff --git a/tests/test_executor.py b/tests/test_executor.py
index b6b043306..509ad0c9d 100644
--- a/tests/test_executor.py
+++ b/tests/test_executor.py
@@ -105,8 +105,8 @@ class EventletContextManagerSpawnTest(test_utils.BaseTestCase):
         self.mgr = context_mgr()
 
     def test_normal_run(self):
-        impl_eventlet.spawn_with(self.mgr, pool=eventlet)
-        eventlet.sleep(0)
+        thread = impl_eventlet.spawn_with(self.mgr, pool=eventlet)
+        thread.wait()
         self.assertEqual(self.before.call_count, 1)
         self.assertEqual(self.callback.call_count, 1)
         self.assertEqual(self.after.call_count, 1)
@@ -114,8 +114,11 @@ class EventletContextManagerSpawnTest(test_utils.BaseTestCase):
 
     def test_excepted_exception(self):
         self.callback.side_effect = ExceptedException
-        impl_eventlet.spawn_with(self.mgr, pool=eventlet)
-        eventlet.sleep(0)
+        thread = impl_eventlet.spawn_with(self.mgr, pool=eventlet)
+        try:
+            thread.wait()
+        except ExceptedException:
+            pass
         self.assertEqual(self.before.call_count, 1)
         self.assertEqual(self.callback.call_count, 1)
         self.assertEqual(self.after.call_count, 1)
@@ -123,8 +126,11 @@ class EventletContextManagerSpawnTest(test_utils.BaseTestCase):
 
     def test_unexcepted_exception(self):
         self.callback.side_effect = Exception
-        impl_eventlet.spawn_with(self.mgr, pool=eventlet)
-        eventlet.sleep(0)
+        thread = impl_eventlet.spawn_with(self.mgr, pool=eventlet)
+        try:
+            thread.wait()
+        except Exception:
+            pass
         self.assertEqual(self.before.call_count, 1)
         self.assertEqual(self.callback.call_count, 1)
         self.assertEqual(self.after.call_count, 0)