Index: src/sas/qtgui/GUITests.py
===================================================================
--- src/sas/qtgui/GUITests.py	(revision d0528c4a26d7bc4821ef07e6c4bcb5487b6c3925)
+++ src/sas/qtgui/GUITests.py	(revision 144fe21c4befe53963fef06a9091c7d69d0b3b41)
@@ -11,7 +11,26 @@
 by running ``python setup.py install`` in both repositories.
 
-The tests can be run with ``python GUITests.py``, or to get more verbose
-console output (recommended), use ``python GUITests.py -v``.
+The tests can be run with ``python GUITests.py``, or
+``python GUITests.py suiteName1 suiteName2 ...`` for a subset of tests.
+
+To get more verbose console output (recommended), use ``python GUITests.py -v``
+or modify tge VERBOSITY module variable.
 """
+
+# Llist of all suite names. Every time a new suite is added, its name should
+# also be added here
+ALL_SUITES = [
+    'calculatorsSuite',
+    'mainSuite',
+    'fittingSuite',
+    'plottingSuite',
+    'utilitiesSuite',
+    'perspectivesSuite',
+    ]
+
+# Define output verbosity
+#VERBOSITY = 0 # quiet - just the total number of tests run and global result
+VERBOSITY = 1 # default - quiet + a dot for every successful test or a F for failure
+#VERBOSITY = 2 # verbose - default + help string of every test and the result
 
 # Prepare the general QApplication instance
@@ -83,5 +102,5 @@
 from Perspectives.Inversion.UnitTesting import InversionPerspectiveTest
 
-def suite():
+def plottingSuite():
     suites = (
         # Plotting
@@ -101,5 +120,9 @@
         unittest.makeSuite(PlotterBaseTest.PlotterBaseTest,           'test'),
         unittest.makeSuite(PlotterTest.PlotterTest,                   'test'),
-
+        )
+    return unittest.TestSuite(suites)
+
+def mainSuite():
+    suites = (
         # Main window
         unittest.makeSuite(DataExplorerTest.DataExplorerTest,  'test'),
@@ -109,6 +132,10 @@
         unittest.makeSuite(AboutBoxTest.AboutBoxTest,          'test'),
         unittest.makeSuite(WelcomePanelTest.WelcomePanelTest,  'test'),
-
-        # Utilities
+        )
+    return unittest.TestSuite(suites)
+
+def utilitiesSuite():
+    suites = (
+        ## Utilities
         unittest.makeSuite(TestUtilsTest.TestUtilsTest,           'test'),
         unittest.makeSuite(SasviewLoggerTest.SasviewLoggerTest,   'test'),
@@ -122,5 +149,9 @@
         unittest.makeSuite(AddMultEditorTest.AddMultEditorTest, 'test'),
         unittest.makeSuite(ReportDialogTest.ReportDialogTest,     'test'),
-
+        )
+    return unittest.TestSuite(suites)
+
+def calculatorsSuite():
+    suites = (
         # Calculators
         unittest.makeSuite(KiessigCalculatorTest.KiessigCalculatorTest,                     'test'),
@@ -131,5 +162,9 @@
         unittest.makeSuite(ResolutionCalculatorPanelTest.ResolutionCalculatorPanelTest, 'test'),
         unittest.makeSuite(DataOperationUtilityTest.DataOperationUtilityTest, 'test'),
-
+        )
+    return unittest.TestSuite(suites)
+
+def fittingSuite():
+    suites = (
         # Perspectives
         #  Fitting
@@ -143,13 +178,30 @@
         unittest.makeSuite(ConstraintWidgetTest.ConstraintWidgetTest,     'test'),
         unittest.makeSuite(ComplexConstraintTest.ComplexConstraintTest,   'test'),
-
+        )
+    return unittest.TestSuite(suites)
+
+def perspectivesSuite():
+    suites = (
         #  Invariant
         unittest.makeSuite(InvariantPerspectiveTest.InvariantPerspectiveTest,  'test'),
         #  Inversion
-        unittest.makeSuite(InversionPerspectiveTest.InversionTest,  'test'),
+        #unittest.makeSuite(InversionPerspectiveTest.InversionTest,  'test'),
         )
     return unittest.TestSuite(suites)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="suite")
-
+
+    user_suites = ALL_SUITES
+    # Check if user asked for specific suites:
+    if len(sys.argv) > 1:
+        user_suites = sys.argv[1:]
+
+    runner = unittest.TextTestRunner(verbosity=VERBOSITY)
+    for suite in user_suites:
+        # create the suite object from name
+        try:
+            suite_instance = globals()[suite]()
+            results = runner.run(suite_instance)
+        except KeyError:
+            print("ERROR: Incorrect suite name: %s " % suite)
+            pass
