diff --git a/mobly/test_runner.py b/mobly/test_runner.py
index 84ddd34..c3c3b54 100644
--- a/mobly/test_runner.py
+++ b/mobly/test_runner.py
@@ -167,12 +167,16 @@
         test_class: module, the test module to print names from.
     """
     cls = test_class(config_parser.TestRunConfig())
+    test_names = []
     try:
         cls.setup_generated_tests()
+        test_names = cls.get_existing_test_names()
     except:
         logging.exception('Failed to retrieve generated tests.')
+    finally:
+        cls._controller_manager.unregister_controllers()
     print('==========> %s <==========' % cls.TAG)
-    for name in cls.get_existing_test_names():
+    for name in test_names:
         print(name)
 
 
diff --git a/tests/mobly/test_runner_test.py b/tests/mobly/test_runner_test.py
index 8d65336..65b9e72 100755
--- a/tests/mobly/test_runner_test.py
+++ b/tests/mobly/test_runner_test.py
@@ -360,6 +360,26 @@
                                  __main__=multiple_subclasses_module):
                 test_class = test_runner._find_test_class()
 
+    def test_print_test_names(self):
+        mock_test_class = mock.MagicMock()
+        mock_cls_instance = mock.MagicMock()
+        mock_test_class.return_value = mock_cls_instance
+        test_runner._print_test_names(mock_test_class)
+        mock_cls_instance.setup_generated_tests.assert_called_once()
+        mock_cls_instance.get_existing_test_names.assert_called_once()
+        mock_cls_instance._controller_manager.unregister_controllers.assert_called_once(
+        )
+
+    def test_print_test_names_with_exception(self):
+        mock_test_class = mock.MagicMock()
+        mock_cls_instance = mock.MagicMock()
+        mock_test_class.return_value = mock_cls_instance
+        test_runner._print_test_names(mock_test_class)
+        mock_cls_instance.setup_generated_tests.side_effect = Exception(
+            'Something went wrong.')
+        mock_cls_instance._controller_manager.unregister_controllers.assert_called_once(
+        )
+
 
 if __name__ == "__main__":
     unittest.main()
