diff --git a/.gitignore b/.gitignore
index 17406adbc8bb12c4795f7eaf99c3ddc73ae092de..adc083f6384aa482570c2627a9caf8f5e7d95db9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,13 @@ dist/*
 *.pyd
 *egg-info*
 
+.eggs
+doctrees
+/docs/_build
+/.project
+/.pydevproject
+/.settings/org.eclipse.core.resources.prefs
+/wetb/gtsdf/tests/tmp
+/wetb/dlc/tests/test_files/res_all
+/wetb/dlc/tests/test_files/res2_all
+/wetb/hawc2/ascii2bin/ascii2bin_dist
diff --git a/tests/testsuite.py b/tests/testsuite.py
new file mode 100644
index 0000000000000000000000000000000000000000..e833720c2fb1818d6f4e80d974eb3408063573c4
--- /dev/null
+++ b/tests/testsuite.py
@@ -0,0 +1,65 @@
+import glob
+import unittest
+import os
+
+os.environ['QT_API'] = "pyqt"
+
+def module_strings():
+    test_file_paths = glob.glob('test_*.py')
+    #test_file_strings.extend(glob.glob('../wetb/**/test_*.py'))
+    #for root,_,_ in os.walk("../wetb/"):
+
+    for folder, _, _ in os.walk('../wetb'):
+        test_file_paths.extend(glob.glob(os.path.join(folder, "tests/test_*.py")))
+    return [s[3:len(s) - 3].replace(os.path.sep, ".") for s in test_file_paths]
+
+
+def suite():
+    try:
+        suites = []
+        for s in module_strings():
+            suites.append(unittest.defaultTestLoader.loadTestsFromName(s))
+    except:
+        print ("Failed to import '%s'" % s)
+
+    return unittest.TestSuite(suites)
+
+#no_tests = 0
+#all = set()
+#all_modules = set()
+#for s in module_strings():
+#    if s.split('.')[-1] in all_modules:
+#        print ("!!!!!%s already loaded" % s)
+#    all_modules.add(s.split('.')[-1])
+#    m = __import__(s, {}, {}, "*")
+#    cls = [t for t in m.__dict__.keys() if t.lower().startswith('test') and t != 'TestCaseAppFunc' and t != "TestCase" and t.strip()[0] != "#"]
+#
+#    test_funcs = [t for t in dir(m.__dict__[cls[0]]) if t.lower().startswith('test') and t != 'testfilepath']
+#    for t in test_funcs:
+#        if t in all:
+#            print ("!!!!!!!!! %s already present" % t)
+#            pass
+#        else:
+#            all.add(t)
+#    no_tests += len(test_funcs)
+#    print ("%-40s" % s, len(test_funcs), "\t\t", test_funcs)
+#print ("Number of tests: ", no_tests, len(all), len(module_strings()))
+
+
+
+
+if __name__ == '__main__':
+    runner = unittest.TextTestRunner()
+    test_suite = suite()
+    runner.run(test_suite)
+else:
+    # for run as pydev unit-test
+    try:
+        for mstr in module_strings():
+            __import__(mstr, {}, {}, "*")
+            exec("from %s import *" % mstr)
+    except Exception as e:
+        for mstr in module_strings():
+            print (mstr)
+            __import__(mstr, {}, {}, "*")
+            exec("from %s import *" % mstr)