diff --git a/tests/bitarithm_timings/tests/01-run.py b/tests/bitarithm_timings/tests/01-run.py
index bc8f4c236f8962c63dc2d318fa559ca6e69f0c89..3178e94cfc29f6aee904e0668f91522b9a1f8c08 100755
--- a/tests/bitarithm_timings/tests/01-run.py
+++ b/tests/bitarithm_timings/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("Start.")
@@ -21,4 +18,6 @@ def testfunc(child):
     child.expect_exact("Done.")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=30))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=30))
diff --git a/tests/bloom_bytes/tests/01-run.py b/tests/bloom_bytes/tests/01-run.py
index 6585ca3487659676785cf74105193d8a5f5690c4..de75b398f40008f29370d338f1074f1368e01956 100755
--- a/tests/bloom_bytes/tests/01-run.py
+++ b/tests/bloom_bytes/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("Testing Bloom filter.")
@@ -24,4 +21,6 @@ def testfunc(child):
     child.expect_exact("All done!")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/buttons/tests/01-run.py b/tests/buttons/tests/01-run.py
index 6037857e9d9208747db9db05b18529f97ac661a9..59437ecf377f4ae3ea9bee5cc318350a118122c7 100755
--- a/tests/buttons/tests/01-run.py
+++ b/tests/buttons/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("On-board button test")
@@ -24,4 +21,6 @@ def testfunc(child):
         child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/cbor/tests/01-run.py b/tests/cbor/tests/01-run.py
index c3ec006d31f57e602d5577b7e92bc1dc1d3d9418..68ec27daef2034d9a3ec105365a781192e6b08ac 100755
--- a/tests/cbor/tests/01-run.py
+++ b/tests/cbor/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 ACCEPTED_ERROR = 20
 
 
@@ -52,4 +49,6 @@ def testfunc(child):
     print("All tests successful")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, echo=False))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, echo=False))
diff --git a/tests/cpp11_condition_variable/tests/01-run.py b/tests/cpp11_condition_variable/tests/01-run.py
index 5fde64fe278821d4611a279a3b3fcec0ba941a01..c92f48c64f4ac662d7501866871e29b598155a9d 100755
--- a/tests/cpp11_condition_variable/tests/01-run.py
+++ b/tests/cpp11_condition_variable/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("************ C++ condition_variable test ***********")
@@ -28,4 +25,6 @@ def testfunc(child):
     child.expect_exact("******************************************************")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/cpp11_mutex/tests/01-run.py b/tests/cpp11_mutex/tests/01-run.py
index 1646e6adf4fb5fa886781142b9649c52b3583d10..76bf11d9d7a23fe46b4fc315e21728b8179c25ee 100755
--- a/tests/cpp11_mutex/tests/01-run.py
+++ b/tests/cpp11_mutex/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("************ C++ mutex test ***********")
@@ -24,4 +21,6 @@ def testfunc(child):
     child.expect_exact("*****************************************")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/cpp11_thread/tests/01-run.py b/tests/cpp11_thread/tests/01-run.py
index 0307f923886a647f0da894fc3bef2a15d2a943dd..98b91d1d4e8711f3f69e8aaccbd8f34b9cfc5311 100755
--- a/tests/cpp11_thread/tests/01-run.py
+++ b/tests/cpp11_thread/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("************ C++ thread test ***********")
@@ -36,4 +33,6 @@ def testfunc(child):
     child.expect_exact("******************************************")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/driver_ds1307/tests/01-run.py b/tests/driver_ds1307/tests/01-run.py
index 055199ef0f4f2b6fbc913d3129fe211f7fc3ad06..b9d290dc4f4e3b17815edadc9857c9c2a8f4b61f 100755
--- a/tests/driver_ds1307/tests/01-run.py
+++ b/tests/driver_ds1307/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect([r"OK \([0-9]+ tests\)",
                   r"error: unable to initialize RTC \[I2C initialization error\]"])
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/driver_grove_ledbar/tests/01-run.py b/tests/driver_grove_ledbar/tests/01-run.py
index 3d121d9933ca877f1a3de5e3909c5460273d8409..5b61fd1c99dc87e3a096ccf1407989d99b6ce5c9 100755
--- a/tests/driver_grove_ledbar/tests/01-run.py
+++ b/tests/driver_grove_ledbar/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact(u"[SUCCESS]", timeout=60)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/driver_hd44780/tests/01-run.py b/tests/driver_hd44780/tests/01-run.py
index c3b9f15a90caeed8f527417bca197490a8b1160a..234d38d8b643cb4d9f0122044933dc657ac931e3 100644
--- a/tests/driver_hd44780/tests/01-run.py
+++ b/tests/driver_hd44780/tests/01-run.py
@@ -10,13 +10,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("[START]")
     child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/driver_my9221/tests/01-run.py b/tests/driver_my9221/tests/01-run.py
index 7e48651f8467a317ba683f35d7106f583489f2f8..e5ee08c2218f6ad4253f36fd70233359c94b34b2 100755
--- a/tests/driver_my9221/tests/01-run.py
+++ b/tests/driver_my9221/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("[SUCCESS]", timeout=60)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/events/tests/01-run.py b/tests/events/tests/01-run.py
index 2b3bd8b378d6d5d8793cb7da4966d89abce16092..fab469c90508150d2d80797833f955aa78621110 100755
--- a/tests/events/tests/01-run.py
+++ b/tests/events/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact(u"[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/evtimer_msg/tests/01-run.py b/tests/evtimer_msg/tests/01-run.py
index e3b400e39b95c1507086655b70c1254709021d20..6f8c0eee462d6a3d821ed3d6addf907401708ccc 100755
--- a/tests/evtimer_msg/tests/01-run.py
+++ b/tests/evtimer_msg/tests/01-run.py
@@ -10,9 +10,6 @@ from __future__ import print_function
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 ACCEPTED_ERROR = 20
 
 
@@ -32,4 +29,6 @@ def testfunc(child):
     print("All tests successful")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, echo=False))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, echo=False))
diff --git a/tests/evtimer_underflow/tests/01-run.py b/tests/evtimer_underflow/tests/01-run.py
index 926f6cee54c3bbd0322bb3c14cde953ded3e91bc..60efd4d8dadfb08651c1e8dbdb3825828c21ce73 100755
--- a/tests/evtimer_underflow/tests/01-run.py
+++ b/tests/evtimer_underflow/tests/01-run.py
@@ -10,9 +10,6 @@ from __future__ import print_function
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 how_many = 100
 
 
@@ -26,4 +23,6 @@ def testfunc(child):
     print("=> All tests successful")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, echo=False))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, echo=False))
diff --git a/tests/float/tests/01-run.py b/tests/float/tests/01-run.py
index 38339e9492136d894c3e75b2b69d829445fc72a3..0bef7e65cb0a2d199ba246002ba09ffdc13a38d9 100755
--- a/tests/float/tests/01-run.py
+++ b/tests/float/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("Testing floating point arithmetics...")
     child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/fmt_print/tests/01-run.py b/tests/fmt_print/tests/01-run.py
index 7d6707a0f35b4e90c74546740306e4ebd081391b..913500e1c70fa0c0328251524f0a94e239619905 100755
--- a/tests/fmt_print/tests/01-run.py
+++ b/tests/fmt_print/tests/01-run.py
@@ -3,13 +3,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('If you can read this:')
     child.expect_exact('Test successful.')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_ipv6_ext/tests/01-run.py b/tests/gnrc_ipv6_ext/tests/01-run.py
index 1db44826b7d31bbe2b0fe8f21281812c6b591ca9..3a56e803ba864049c52cf05d41219119694b1d60 100755
--- a/tests/gnrc_ipv6_ext/tests/01-run.py
+++ b/tests/gnrc_ipv6_ext/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     index = child.expect_exact([
@@ -41,4 +38,6 @@ def testfunc(child):
     child.expect_exact("pkt->users: 0")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_ipv6_nib/tests/01-run.py b/tests/gnrc_ipv6_nib/tests/01-run.py
index d2ade821ec5c1382d228b5a72a0441b149221eed..741c695754551c271aea362bddc4dd26a4c9e590 100755
--- a/tests/gnrc_ipv6_nib/tests/01-run.py
+++ b/tests/gnrc_ipv6_nib/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(r"OK \(\d+ tests\)")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=1))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_ipv6_nib_6ln/tests/01-run.py b/tests/gnrc_ipv6_nib_6ln/tests/01-run.py
index d2ade821ec5c1382d228b5a72a0441b149221eed..741c695754551c271aea362bddc4dd26a4c9e590 100755
--- a/tests/gnrc_ipv6_nib_6ln/tests/01-run.py
+++ b/tests/gnrc_ipv6_nib_6ln/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(r"OK \(\d+ tests\)")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=1))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_ndp/tests/01-run.py b/tests/gnrc_ndp/tests/01-run.py
index 1f1039f78bc10fd5db3d65b734cbe6234b316723..dcc3c5d7f654cf33372f19547d4eab5ced477d31 100755
--- a/tests/gnrc_ndp/tests/01-run.py
+++ b/tests/gnrc_ndp/tests/01-run.py
@@ -10,13 +10,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     # 1st 6LoWPAN fragment
     child.expect(r"OK \(\d+ tests\)")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_netif/tests/01-run.py b/tests/gnrc_netif/tests/01-run.py
index 255f8a5b4cbfdc5846e5ec08a3d2995c2ba7a231..7901d4b7c0a231dbcb92f14d5d195c02dc650547 100755
--- a/tests/gnrc_netif/tests/01-run.py
+++ b/tests/gnrc_netif/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     # embUnit tests
@@ -140,4 +137,6 @@ def testfunc(child):
     child.expect("~~ PKT    -  2 snips, total size:  61 byte")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=1, traceback=True))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=1, traceback=True))
diff --git a/tests/gnrc_sixlowpan/tests/01-run.py b/tests/gnrc_sixlowpan/tests/01-run.py
index a7d1842ceb8c2e4cf91a25f53b7128358bab8ad0..5138e344083cfb8ba883a03dcb72acafb98b9f64 100755
--- a/tests/gnrc_sixlowpan/tests/01-run.py
+++ b/tests/gnrc_sixlowpan/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     # 1st 6LoWPAN fragment
@@ -78,4 +75,6 @@ def testfunc(child):
     child.expect_exact("destination address: fd01::1")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_sock_ip/tests/01-run.py b/tests/gnrc_sock_ip/tests/01-run.py
index 0f5eea832e2d52df754a92850472133488a74b6a..dfe4e3077f903878f0a1917170267efedf3fa7d8 100755
--- a/tests/gnrc_sock_ip/tests/01-run.py
+++ b/tests/gnrc_sock_ip/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact(u"Calling test_sock_ip_create__EAFNOSUPPORT()")
@@ -51,4 +48,6 @@ def testfunc(child):
     child.expect_exact(u"ALL TESTS SUCCESSFUL")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/gnrc_sock_udp/tests/01-run.py b/tests/gnrc_sock_udp/tests/01-run.py
index f553d17c10cfade720aec11756bfdba630f4c86a..a91d62103f6f462fc98fbba922a6964ecac290a1 100755
--- a/tests/gnrc_sock_udp/tests/01-run.py
+++ b/tests/gnrc_sock_udp/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact(u"Calling test_sock_udp_create__EADDRINUSE()")
@@ -55,4 +52,6 @@ def testfunc(child):
     child.expect_exact(u"ALL TESTS SUCCESSFUL")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/irq/tests/01-run.py b/tests/irq/tests/01-run.py
index 54be44a747165791c6bc63df155396c1b8345a86..f5394a40b7b3a49a4779eb11d5c35fa269564ff1 100755
--- a/tests/irq/tests/01-run.py
+++ b/tests/irq/tests/01-run.py
@@ -3,13 +3,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('START')
     child.expect('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/libfixmath/tests/01-run.py b/tests/libfixmath/tests/01-run.py
index 92e5f4544e2a01e53e5f6c218e923407ba6d7379..71916e93eaa52feb0373413a28210c73b7034ae6 100755
--- a/tests/libfixmath/tests/01-run.py
+++ b/tests/libfixmath/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def expect_unary(child):
     for _ in range(20):
@@ -41,4 +38,6 @@ def testfunc(child):
     child.expect_exact('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/libfixmath_unittests/tests/01-run.py b/tests/libfixmath_unittests/tests/01-run.py
index 0a1cecc7d233a661148d23ab7369bfb76260b0c4..737987663f75a6c2d31a3782e6e930f08b74c49a 100755
--- a/tests/libfixmath_unittests/tests/01-run.py
+++ b/tests/libfixmath_unittests/tests/01-run.py
@@ -9,12 +9,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/lwip_sock_ip/tests/01-run.py b/tests/lwip_sock_ip/tests/01-run.py
index 96f73bdd80b20c9974bbe85625c27c1d5672c964..36cd5a0a83e2bb4d2108acb70432263e9eda952f 100755
--- a/tests/lwip_sock_ip/tests/01-run.py
+++ b/tests/lwip_sock_ip/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def _ipv6_tests(code):
     return code & (1 << 6)
@@ -99,4 +96,6 @@ def testfunc(child):
     child.expect_exact(u"ALL TESTS SUCCESSFUL")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/lwip_sock_tcp/tests/01-run.py b/tests/lwip_sock_tcp/tests/01-run.py
index 176c9985228c2726eb771d524a197f55c320b7dd..5ceb51e3e236fb1f053da9b75d820cf5ac657ee6 100755
--- a/tests/lwip_sock_tcp/tests/01-run.py
+++ b/tests/lwip_sock_tcp/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def _reuse_tests(code):
     return code & 1
@@ -93,4 +90,6 @@ def testfunc(child):
     child.expect_exact(u"ALL TESTS SUCCESSFUL")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=60))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=60))
diff --git a/tests/lwip_sock_udp/tests/01-run.py b/tests/lwip_sock_udp/tests/01-run.py
index ba0887ad2cc3aac53cc71121d8b6e3449e5d61e1..7cbc8007b3bf536f7e8ebef7d1bfbd79c5c21cae 100755
--- a/tests/lwip_sock_udp/tests/01-run.py
+++ b/tests/lwip_sock_udp/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def _reuse_tests(code):
     return code & 1
@@ -111,4 +108,6 @@ def testfunc(child):
     child.expect_exact(u"ALL TESTS SUCCESSFUL")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/msg_avail/tests/01-run.py b/tests/msg_avail/tests/01-run.py
index 2b3bd8b378d6d5d8793cb7da4966d89abce16092..fab469c90508150d2d80797833f955aa78621110 100755
--- a/tests/msg_avail/tests/01-run.py
+++ b/tests/msg_avail/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact(u"[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/msg_send_receive/tests/01-run.py b/tests/msg_send_receive/tests/01-run.py
index 9ff95cf953a44984edb9f0ae8531fcfc8da2ad4a..26a28d1a2d6341c30edcc47c20e46365910c184a 100755
--- a/tests/msg_send_receive/tests/01-run.py
+++ b/tests/msg_send_receive/tests/01-run.py
@@ -9,12 +9,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(u"Test successful.")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/msg_try_receive/tests/01-run.py b/tests/msg_try_receive/tests/01-run.py
index 75c63e5653bb2baab355f492f3bdc7ad2dcf6a8e..d69458c3f69bfd93e23f602e20edd4dc4e4ca61e 100755
--- a/tests/msg_try_receive/tests/01-run.py
+++ b/tests/msg_try_receive/tests/01-run.py
@@ -3,13 +3,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('main starting')
     child.expect('msg available: 1 \(should be 1\!\)')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/mutex_order/tests/01-run.py b/tests/mutex_order/tests/01-run.py
index 85e800f9486933f58236a8f14e7aee1f59bdb2e4..4dbeb32959d0367ea843a07c8c73c8f7f79de4d4 100755
--- a/tests/mutex_order/tests/01-run.py
+++ b/tests/mutex_order/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 thread_prio = {
         3:  6,
         4:  4,
@@ -33,4 +30,6 @@ def testfunc(child):
         last = int(child.match.group(1))
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/mutex_unlock_and_sleep/tests/01-run.py b/tests/mutex_unlock_and_sleep/tests/01-run.py
index eb74e3799a358d2e3585033a945b1d7174cf7d89..632c66ab10396862543eb88322f772421660d0f6 100755
--- a/tests/mutex_unlock_and_sleep/tests/01-run.py
+++ b/tests/mutex_unlock_and_sleep/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     for i in range(20):
         child.expect(r"\[ALIVE\] alternated \d+k times.")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/netdev_test/tests/01-run.py b/tests/netdev_test/tests/01-run.py
index 757c1bd24d259770d614242cd29ed69c38b312a9..615046f4323731592936b9d59a58cd644fd2cf0a 100755
--- a/tests/netdev_test/tests/01-run.py
+++ b/tests/netdev_test/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('Executing test_get_addr()')
@@ -25,4 +22,6 @@ def testfunc(child):
     child.expect_exact('ALL TESTS SUCCESSFUL')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/nhdp/tests/01-run.py b/tests/nhdp/tests/01-run.py
index ffbbecfe97b09430897d316431b19e256b799642..ee451a7d3ce836e6a92623b7772fec5a9263536b 100755
--- a/tests/nhdp/tests/01-run.py
+++ b/tests/nhdp/tests/01-run.py
@@ -9,12 +9,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('SUCCESS: NHDP compiled!')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/od/tests/01-run.py b/tests/od/tests/01-run.py
index cb4e8f7f625ede12fbb872a062cc95f00d0d3e64..d99d4300aec33d3899282dd7d617ffe485ef7adf 100755
--- a/tests/od/tests/01-run.py
+++ b/tests/od/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("od_hex_dump(short_str, sizeof(short_str), OD_WIDTH_DEFAULT)")
@@ -42,4 +39,6 @@ def testfunc(child):
     print("All tests successful")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=1, echo=False))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=1, echo=False))
diff --git a/tests/od/tests/02-run.py b/tests/od/tests/02-run.py
index 5d6c14abe8c26cf5a5bc9c3dcf17f75f38f14452..3e99f59b9b35529844391b419c9dd3439211b01d 100755
--- a/tests/od/tests/02-run.py
+++ b/tests/od/tests/02-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("od_hex_dump(short_str, sizeof(short_str), OD_WIDTH_DEFAULT)")
@@ -42,4 +39,6 @@ def testfunc(child):
     print("All tests successful")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=1, echo=False))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=1, echo=False))
diff --git a/tests/periph_timer/tests/01-run.py b/tests/periph_timer/tests/01-run.py
index eca2be635307d50395e736acbf11046983a8e720..5e6a8f7cd0eeecadbfcd476688e6e2d50905e7a8 100755
--- a/tests/periph_timer/tests/01-run.py
+++ b/tests/periph_timer/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('Available timers: (\d+)')
@@ -24,4 +21,6 @@ def testfunc(child):
     child.expect('TEST SUCCEEDED')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pipe/tests/01-run.py b/tests/pipe/tests/01-run.py
index 1130f89c6734e176161f32bb3539d82128585171..8965b5a7204235ae9e47af2c58964cd8041926fb 100755
--- a/tests/pipe/tests/01-run.py
+++ b/tests/pipe/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('Start.')
@@ -32,4 +29,6 @@ def testfunc(child):
     child.expect_exact('End done.')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pkg_jsmn/tests/01-run.py b/tests/pkg_jsmn/tests/01-run.py
index c3f8a0f0b64744dc3ca6ca471ee222efc0f19b33..c5e46800e7fa5ec94d32d9a87a7ab9d782c061c4 100755
--- a/tests/pkg_jsmn/tests/01-run.py
+++ b/tests/pkg_jsmn/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('- User: johndoe')
@@ -18,4 +15,6 @@ def testfunc(child):
     child.expect_exact('  * video')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pkg_libcoap/tests/01-run.py b/tests/pkg_libcoap/tests/01-run.py
index 361082affcee149ad7b9c6f4aa1c6c938a32b7f4..dd4a7748f4f10e7d9ac3845373dfb5decc69ffe2 100755
--- a/tests/pkg_libcoap/tests/01-run.py
+++ b/tests/pkg_libcoap/tests/01-run.py
@@ -3,12 +3,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('SUCCESS: Libcoap compiled!')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pkg_micro-ecc-with-hwrng/tests/01-run.py b/tests/pkg_micro-ecc-with-hwrng/tests/01-run.py
index 87ee4f1cf0a5466c3e1403d9daf6886c6b675c61..4118445bca16328ca17692a120b8e5a75f96d8ba 100755
--- a/tests/pkg_micro-ecc-with-hwrng/tests/01-run.py
+++ b/tests/pkg_micro-ecc-with-hwrng/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('micro-ecc compiled!')
@@ -15,4 +12,6 @@ def testfunc(child):
     child.expect_exact('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=60))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=60))
diff --git a/tests/pkg_micro-ecc/tests/01-run.py b/tests/pkg_micro-ecc/tests/01-run.py
index c03e53b7b794d701c46a48c178dd4391e4f8cef0..513681ac138f2c1269d93a156bff0101e3178f62 100755
--- a/tests/pkg_micro-ecc/tests/01-run.py
+++ b/tests/pkg_micro-ecc/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('micro-ecc compiled!')
@@ -15,4 +12,6 @@ def testfunc(child):
     child.expect_exact('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=60))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=60))
diff --git a/tests/pkg_minmea/tests/01-run.py b/tests/pkg_minmea/tests/01-run.py
index e6aba51b00113099aae66e3f96267b265fd5dec8..dc6d8b5472fb2fd87ec079b376286776b6a1bdc8 100755
--- a/tests/pkg_minmea/tests/01-run.py
+++ b/tests/pkg_minmea/tests/01-run.py
@@ -3,13 +3,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('START')
     child.expect_exact('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pkg_tiny-asn1/tests/01-run.py b/tests/pkg_tiny-asn1/tests/01-run.py
index 0c25de935437d7d47903e1c79ce476c540146244..674ed5a8ed71decd071b99677905aefd34e1c763 100755
--- a/tests/pkg_tiny-asn1/tests/01-run.py
+++ b/tests/pkg_tiny-asn1/tests/01-run.py
@@ -10,12 +10,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('Decoding finished succesfully')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pkg_umorse/tests/01-run.py b/tests/pkg_umorse/tests/01-run.py
index 19c6dd918f06c9ad19e22dda9b6628dd25b55512..b3fe164f1e690b78ec1ed61a8c14e93d65c7a489 100755
--- a/tests/pkg_umorse/tests/01-run.py
+++ b/tests/pkg_umorse/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(u".... . ._.. ._.. ___ / ._. .. ___ _ ___ ...", timeout=30)
@@ -23,4 +20,6 @@ def testfunc(child):
     child.expect_exact("[SUCCESS]", timeout=120)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/posix_semaphore/tests/01-run.py b/tests/posix_semaphore/tests/01-run.py
index 6e827717ba2e402acf2a16d375c187db1b383001..cb5bf3a01b95de0873be7131cfe4e7143028e671 100755
--- a/tests/posix_semaphore/tests/01-run.py
+++ b/tests/posix_semaphore/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def test1(term):
     term.expect_exact("######################### TEST1:")
@@ -100,4 +97,6 @@ def testfunc(child):
     child.expect("######################### DONE")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/posix_time/tests/01-run.py b/tests/posix_time/tests/01-run.py
index 036cf5026a11568c56f57c50639b0901c4e1c072..324ea3393d2b5f8bc37a063aeb3781c0de7919aa 100755
--- a/tests/posix_time/tests/01-run.py
+++ b/tests/posix_time/tests/01-run.py
@@ -12,9 +12,6 @@ import os
 import sys
 import time
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 US_PER_SEC = 1000000
 EXTERNAL_JITTER = 0.15
 
@@ -48,4 +45,6 @@ def testfunc(child):
         sys.exit(1)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, echo=True))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/ps_schedstatistics/tests/01-run.py b/tests/ps_schedstatistics/tests/01-run.py
index 3138b3dd091c8a75326aab2ff29f1769a22a907e..5d76f3d60846bac6e23424ae01195082564750a8 100755
--- a/tests/ps_schedstatistics/tests/01-run.py
+++ b/tests/ps_schedstatistics/tests/01-run.py
@@ -9,10 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
-
 PS_EXPECTED = (
     ('\tpid | name                 | state    Q | pri | stack  ( used) | '
      'base addr  | current     | runtime  | switches'),
@@ -63,4 +59,6 @@ def testfunc(child):
     _check_ps(child)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pthread/tests/01-run.py b/tests/pthread/tests/01-run.py
index f2ae587229f9cadaf511dc49d94cdcb3be0872ad..7a28b9d6811e66417c090204a4faf5203dd41d14 100755
--- a/tests/pthread/tests/01-run.py
+++ b/tests/pthread/tests/01-run.py
@@ -4,10 +4,6 @@ import os
 import sys
 import math
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
-
 FACTORIAL_PARAM = 6
 
 
@@ -22,4 +18,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pthread_barrier/tests/01-run.py b/tests/pthread_barrier/tests/01-run.py
index 9dcab9af750218e223736f589917ef13aba348b9..197085bea330e12666921d5793b34c9323ce83b1 100755
--- a/tests/pthread_barrier/tests/01-run.py
+++ b/tests/pthread_barrier/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('START')
@@ -19,4 +16,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pthread_cleanup/tests/01-run.py b/tests/pthread_cleanup/tests/01-run.py
index 91d45f5f411fe3917063f9cfc434c73b44f13a9b..5bf3a9e64bf7623283d0638b8f5a119f716df8b6 100755
--- a/tests/pthread_cleanup/tests/01-run.py
+++ b/tests/pthread_cleanup/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('START')
@@ -23,4 +20,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pthread_condition_variable/tests/01-run.py b/tests/pthread_condition_variable/tests/01-run.py
index a88053e6fbeb2c40fa76bbb761253e72f9b95584..af8c007044a5b390fe218cfa84cbd2a40787f18e 100755
--- a/tests/pthread_condition_variable/tests/01-run.py
+++ b/tests/pthread_condition_variable/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('START')
@@ -16,4 +13,6 @@ def testfunc(child):
 if __name__ == "__main__":
     # This test can take some time to complete when testing on hardware (e.g
     # on samr21-xpro) and the default timeout (10s) is not enough.
-    sys.exit(testrunner.run(testfunc, timeout=60))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=60))
diff --git a/tests/pthread_cooperation/tests/01-run.py b/tests/pthread_cooperation/tests/01-run.py
index 289259d3e1e2ccd36f939a2d57053331803d14b8..a88a5975ce66a3a531a3d74593d1cba0b4304da6 100755
--- a/tests/pthread_cooperation/tests/01-run.py
+++ b/tests/pthread_cooperation/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('START')
@@ -20,4 +17,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pthread_rwlock/tests/01-run.py b/tests/pthread_rwlock/tests/01-run.py
index 260c4492639233c4d94d34ba148ad9ca81d0f184..3dad83916dcf64686c927e73d6ea203c0820e416 100755
--- a/tests/pthread_rwlock/tests/01-run.py
+++ b/tests/pthread_rwlock/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('START')
@@ -19,4 +16,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/pthread_tls/tests/01-run.py b/tests/pthread_tls/tests/01-run.py
index 12435e7b908a19d808511298364976eb12325772..004395d4e0f0819be428e5aab0a65d94e288fd1e 100755
--- a/tests/pthread_tls/tests/01-run.py
+++ b/tests/pthread_tls/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def _check_test_output(child):
     child.expect('show tls values:')
@@ -38,4 +35,6 @@ def testfunc(child):
     child.expect('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/rmutex/tests/01-run.py b/tests/rmutex/tests/01-run.py
index f9a86d1c60ac986cf5fe49475db7781be9658d01..a68a109ce7f62631814a7fa97043e8be11c9654d 100755
--- a/tests/rmutex/tests/01-run.py
+++ b/tests/rmutex/tests/01-run.py
@@ -11,9 +11,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 thread_prio = {
         3:  6,
         4:  4,
@@ -47,4 +44,6 @@ def testfunc(child):
                          (T, thread_prio[T], depth))
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/sched_testing/tests/01-run.py b/tests/sched_testing/tests/01-run.py
index 5adc760361c84f479db68a0fb99738235cbc6978..c383d790111f15251837893d2f3b8a73eea54761 100755
--- a/tests/sched_testing/tests/01-run.py
+++ b/tests/sched_testing/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('The output should be: yield 1, snd_thread running, '
@@ -18,4 +15,6 @@ def testfunc(child):
     child.expect_exact('done')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/shell/tests/01-run.py b/tests/shell/tests/01-run.py
index b255b8aa489d64ed9b080a40c8df17001296787a..c2e309f654fcf11ae0b02869bde7a6db8c8d4f7c 100755
--- a/tests/shell/tests/01-run.py
+++ b/tests/shell/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 EXPECTED_HELP = (
     'Command              Description',
     '---------------------------------------',
@@ -58,4 +55,6 @@ def testfunc(child):
         check_cmd(child, cmd, expected)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/sizeof_tcb/tests/01-run.py b/tests/sizeof_tcb/tests/01-run.py
index 5d568051f65058045267ddf3efb7423e966330b6..831ee218ac2a1ff2492c6114d480062734975442 100755
--- a/tests/sizeof_tcb/tests/01-run.py
+++ b/tests/sizeof_tcb/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('\tmember, sizeof, offsetof')
@@ -28,4 +25,6 @@ def testfunc(child):
     child.expect_exact('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/ssp/tests/01-run.py b/tests/ssp/tests/01-run.py
index 6de5ad714732ec827ef5e98e340892274c37972c..8b5334ff8a4a421cb260c87985a8d1a167a93145 100755
--- a/tests/ssp/tests/01-run.py
+++ b/tests/ssp/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('calling stack corruption function')
     child.expect('.*stack smashing detected.*')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/struct_tm_utility/tests/01-run.py b/tests/struct_tm_utility/tests/01-run.py
index 078d4db9c4051a5932771001a66c53aedbdc7c1f..91fa7fa48965ca43c82d79912ea56ea0b7c59c0d 100755
--- a/tests/struct_tm_utility/tests/01-run.py
+++ b/tests/struct_tm_utility/tests/01-run.py
@@ -11,9 +11,6 @@ import sys
 import calendar
 import datetime
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def _check_help(child):
     child.sendline('help')
@@ -116,4 +113,6 @@ def testfunc(child):
     _check_day(child)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_basic/tests/01-run.py b/tests/thread_basic/tests/01-run.py
index 5a7f5034b5b03d5e739dc6fde1d695fcc79c3c48..74e3fcd77a2149a9cbcc115801b5042757fe7fbe 100755
--- a/tests/thread_basic/tests/01-run.py
+++ b/tests/thread_basic/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('first thread\r\n')
     child.expect('second thread\r\n')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_cooperation/tests/01-run.py b/tests/thread_cooperation/tests/01-run.py
index 9b6ecbfbd15e609c5eaf25d4f74b6e3f28a4791c..84bcbbb0d98d9fd6f0bdfff7dea567b5eeddefec 100755
--- a/tests/thread_cooperation/tests/01-run.py
+++ b/tests/thread_cooperation/tests/01-run.py
@@ -10,9 +10,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(r"MAIN: reply from T-\d+")
@@ -20,4 +17,6 @@ def testfunc(child):
     child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_exit/tests/01-run.py b/tests/thread_exit/tests/01-run.py
index c3e6ce101afc119ba1101fd1f9fdd3322821d9dc..dfc2c1136a3e9980ce017ff519840363dae41f98 100755
--- a/tests/thread_exit/tests/01-run.py
+++ b/tests/thread_exit/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect("main: starting")
@@ -19,4 +16,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_flags/tests/01-run.py b/tests/thread_flags/tests/01-run.py
index 7258ef4241f878a731fc702096d713cc57e17f93..8b0b8f560e8413a3dd502f14ceba485a29615f97 100755
--- a/tests/thread_flags/tests/01-run.py
+++ b/tests/thread_flags/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect("START")
@@ -31,4 +28,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_flags_xtimer/tests/01-run.py b/tests/thread_flags_xtimer/tests/01-run.py
index 9f2a5e8e0b56b92e499b2c1432334ab3d6ea5f44..5f2c50d36b399a98c691a896eeecf3839fd1da89 100755
--- a/tests/thread_flags_xtimer/tests/01-run.py
+++ b/tests/thread_flags_xtimer/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect("START")
@@ -15,4 +12,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_flood/tests/01-run.py b/tests/thread_flood/tests/01-run.py
index 4cc744e010f58452e52835d443d41db02151e3e5..7e7cb558600a15eb363b5c4aedaa3f1ba5c0a370 100755
--- a/tests/thread_flood/tests/01-run.py
+++ b/tests/thread_flood/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact(u'[START] Spawning threads')
@@ -13,4 +10,6 @@ def testfunc(child):
     child.expect(r'\[SUCCESS\] created \d+')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_msg/tests/01-run.py b/tests/thread_msg/tests/01-run.py
index f09411b81c46b217f8ada018aa5a092ba52f97f9..57d9f326e53a5370666ff5e993b57388ad81b225 100755
--- a/tests/thread_msg/tests/01-run.py
+++ b/tests/thread_msg/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact('THREADS CREATED')
@@ -16,4 +13,6 @@ def testfunc(child):
     child.expect_exact('SUCCESS')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_msg_block_w_queue/tests/01-run.py b/tests/thread_msg_block_w_queue/tests/01-run.py
index 0a9a8ee4bdf8e1acf8cf512c794b1a3d16ad217b..3ab9705cbf685dfc2a57a34008415a85f28b031a 100755
--- a/tests/thread_msg_block_w_queue/tests/01-run.py
+++ b/tests/thread_msg_block_w_queue/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('sender_thread start\r\n')
     child.expect('main thread alive\r\n')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_msg_block_wo_queue/tests/01-run.py b/tests/thread_msg_block_wo_queue/tests/01-run.py
index 0a9a8ee4bdf8e1acf8cf512c794b1a3d16ad217b..3ab9705cbf685dfc2a57a34008415a85f28b031a 100755
--- a/tests/thread_msg_block_wo_queue/tests/01-run.py
+++ b/tests/thread_msg_block_wo_queue/tests/01-run.py
@@ -9,13 +9,12 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect('sender_thread start\r\n')
     child.expect('main thread alive\r\n')
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/thread_msg_seq/tests/01-run.py b/tests/thread_msg_seq/tests/01-run.py
index b1e52cfd93afbe937e096650f2a3a4e4f38828ec..7f099853d4485a9d6f3d5e5e347c4c394c4dc949 100755
--- a/tests/thread_msg_seq/tests/01-run.py
+++ b/tests/thread_msg_seq/tests/01-run.py
@@ -3,9 +3,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect("START")
@@ -23,4 +20,6 @@ def testfunc(child):
 
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/trickle/tests/01-run.py b/tests/trickle/tests/01-run.py
index 33ad94d77292eeb27cdb8f3704fa2f0ceb4a0d84..47afeebe73496ebd3d8dd203da26cbd85c481a46 100755
--- a/tests/trickle/tests/01-run.py
+++ b/tests/trickle/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("[START]")
@@ -27,4 +24,6 @@ def testfunc(child):
     child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/unittests/tests/01-run.py b/tests/unittests/tests/01-run.py
index c8183c2a4feadf66cec10582deeddaae14398013..48b7ac912ec1a6d03cf8d2081a730ba63e95af09 100755
--- a/tests/unittests/tests/01-run.py
+++ b/tests/unittests/tests/01-run.py
@@ -9,12 +9,11 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(u"OK \\([0-9]+ tests\\)")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, timeout=60))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc, timeout=60))
diff --git a/tests/xtimer_hang/tests/01-run.py b/tests/xtimer_hang/tests/01-run.py
index cc44b205af5461739930b7a4ea3b8aeaccd3da78..68676388e205c8fa69c6c2bac4b25ca84a8e3df8 100755
--- a/tests/xtimer_hang/tests/01-run.py
+++ b/tests/xtimer_hang/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("[START]")
@@ -24,4 +21,6 @@ def testfunc(child):
     child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_msg_receive_timeout/tests/01-run.py b/tests/xtimer_msg_receive_timeout/tests/01-run.py
index 5cfc83c7a58332346c39910f1ebedd639c7b77a2..2de740b507ac7bdcd255cf0501a229d34fe27fac 100755
--- a/tests/xtimer_msg_receive_timeout/tests/01-run.py
+++ b/tests/xtimer_msg_receive_timeout/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect("[START]")
@@ -21,4 +18,6 @@ def testfunc(child):
     child.expect("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_now64_continuity/tests/01-run.py b/tests/xtimer_now64_continuity/tests/01-run.py
index 828efb660643b9a00328bde02eef4b01e17337e9..471c537dab2439be3b7276dcd0743fdaa4347367 100755
--- a/tests/xtimer_now64_continuity/tests/01-run.py
+++ b/tests/xtimer_now64_continuity/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("[START]")
@@ -19,4 +16,6 @@ def testfunc(child):
     child.expect_exact("[SUCCESS]")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_periodic_wakeup/tests/01-run.py b/tests/xtimer_periodic_wakeup/tests/01-run.py
index 433ce162413ee7cdbdbc5a096c9624a9d68c0e1a..6012617a75fd17a07e11a8848cd25c5bc5fabdaf 100755
--- a/tests/xtimer_periodic_wakeup/tests/01-run.py
+++ b/tests/xtimer_periodic_wakeup/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("xtimer_periodic_wakeup test application.")
@@ -25,4 +22,6 @@ def testfunc(child):
     child.expect_exact("Test complete.")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_remove/tests/01-run.py b/tests/xtimer_remove/tests/01-run.py
index 8b7c52706641c121a93e7e36897de627c4fedc94..56dfa19f28bb842b23ba93dde567992d364caab3 100755
--- a/tests/xtimer_remove/tests/01-run.py
+++ b/tests/xtimer_remove/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("xtimer_remove test application.")
@@ -27,4 +24,6 @@ def testfunc(child):
     child.expect_exact("test successful.")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_reset/tests/01-run.py b/tests/xtimer_reset/tests/01-run.py
index 87f31a0b89fa03dbe00c3ef308610b471bc89e7d..11af527564a91ea67cb052af5dd762a0d1b32cef 100755
--- a/tests/xtimer_reset/tests/01-run.py
+++ b/tests/xtimer_reset/tests/01-run.py
@@ -9,9 +9,6 @@
 import os
 import sys
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect_exact("This test tests re-setting of an already active timer.")
@@ -23,4 +20,6 @@ def testfunc(child):
     child.expect_exact("Test completed!")
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_usleep/tests/01-run.py b/tests/xtimer_usleep/tests/01-run.py
index 3e41763a1116e75d3f5a5c8b32cb1c5e1fb5d70f..01c5fc6c3b72c9870017b93a5d333673319f47c8 100755
--- a/tests/xtimer_usleep/tests/01-run.py
+++ b/tests/xtimer_usleep/tests/01-run.py
@@ -13,9 +13,6 @@ import os
 import sys
 import time
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 US_PER_SEC = 1000000
 INTERNAL_JITTER = 0.05
 EXTERNAL_JITTER = 0.15
@@ -55,4 +52,6 @@ def testfunc(child):
         sys.exit(1)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc, echo=True))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))
diff --git a/tests/xtimer_usleep_short/tests/01-run.py b/tests/xtimer_usleep_short/tests/01-run.py
index 5fc2385ef527e1642d8925280a58f276e269eb0b..fb43acd7480c8fecf0d2a25a55e0eff84d5becfa 100755
--- a/tests/xtimer_usleep_short/tests/01-run.py
+++ b/tests/xtimer_usleep_short/tests/01-run.py
@@ -10,9 +10,6 @@ import os
 import sys
 import pexpect
 
-sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
-import testrunner
-
 
 def testfunc(child):
     child.expect(u"This test will call xtimer_usleep for values from \\d+ down to \\d+\r\n")
@@ -31,4 +28,6 @@ def testfunc(child):
     child.expect(u"[SUCCESS]", timeout=3)
 
 if __name__ == "__main__":
-    sys.exit(testrunner.run(testfunc))
+    sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+    from testrunner import run
+    sys.exit(run(testfunc))