diff --git a/lldb/test/help/TestHelp.py b/lldb/test/help/TestHelp.py
index 0cf7ddb..530bbda 100644
--- a/lldb/test/help/TestHelp.py
+++ b/lldb/test/help/TestHelp.py
@@ -1,33 +1,13 @@
 """Test lldb help command."""
 
 import os, time
-import lldb
 import unittest
+import lldb
+import lldbtest
 
-main = False
+class TestHelpCommand(lldbtest.TestBase):
 
-class TestHelpCommand(unittest.TestCase):
-
-    def setUp(self):
-        global main
-
-        # Save old working directory.
-        self.oldcwd = os.getcwd()
-        # Change current working directory if ${LLDB_TEST} is defined.
-        if ("LLDB_TEST" in os.environ):
-            os.chdir(os.path.join(os.environ["LLDB_TEST"], "help"));
-        self.dbg = lldb.SBDebugger.Create() if main else lldb.DBG
-        if not self.dbg.IsValid():
-            raise Exception('Invalid debugger instance')
-        self.dbg.SetAsync(False)
-        self.ci = self.dbg.GetCommandInterpreter()
-        if not self.ci:
-            raise Exception('Could not get the command interpreter')
-
-    def tearDown(self):
-        # Restore old working directory.
-        os.chdir(self.oldcwd)
-        del self.dbg
+    mydir = "help"
 
     def test_simplehelp(self):
         """A simple test of 'help' command and its output."""
@@ -53,6 +33,5 @@
 
 if __name__ == '__main__':
     lldb.SBDebugger.Initialize()
-    main = True
     unittest.main()
     lldb.SBDebugger.Terminate()
