- script to run all the tests
- don't print warning if test module is not main module
diff --git a/pyserial/examples/run_all_tests.py b/pyserial/examples/run_all_tests.py
new file mode 100644
index 0000000..636a0b6
--- /dev/null
+++ b/pyserial/examples/run_all_tests.py
@@ -0,0 +1,42 @@
+#! /usr/bin/env python
+
+"""\
+UnitTest runner. This one searches for all files named test_*.py and collects
+all test cases from these files. Finally it runs all tests and prints a
+summary.
+"""
+
+import unittest
+import sys
+import os
+import time
+
+PORT = 'loop://'
+
+# find files and the tests in them
+mainsuite = unittest.TestSuite()
+for modulename in [os.path.splitext(x)[0]
+    for x in os.listdir('.')
+        if x != __file__ and x.startswith("test_") and x.endswith(".py")
+]:
+    try:
+        module = __import__(modulename)
+    except ImportError:
+        print "skipping %s" % modulename
+    else:
+        module.PORT = PORT
+        testsuite = unittest.findTestCases(module)
+        print "found %s tests in %r" % (testsuite.countTestCases(), modulename)
+        mainsuite.addTest(testsuite)
+
+verbosity = 1
+if '-v' in sys.argv[1:]:
+    verbosity = 2
+
+# run the collected tests
+testRunner = unittest.TextTestRunner(verbosity=verbosity)
+#~ testRunner = unittest.ConsoleTestRunner(verbosity=verbosity)
+result = testRunner.run(mainsuite)
+
+# set exit code accordingly to test results
+sys.exit(not result.wasSuccessful())
diff --git a/pyserial/examples/test_iolib.py b/pyserial/examples/test_iolib.py
index 5bcaed3..d4e9315 100644
--- a/pyserial/examples/test_iolib.py
+++ b/pyserial/examples/test_iolib.py
@@ -29,7 +29,7 @@
 import unittest
 import sys
 
-if sys.version_info < (2, 6):
+if __name__ == '__main__'  and sys.version_info < (2, 6):
     sys.stderr.write("""\
 ==============================================================================
 WARNING: this test is intended for Python 2.6 and newer where the io library