diff --git a/tests/apps.php b/tests/apps.php
new file mode 100644
index 0000000000000000000000000000000000000000..3e27b81df6160e746ef68aec1c81d1dcb9814394
--- /dev/null
+++ b/tests/apps.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+function loadDirectory($path) {
+	if ($dh = opendir($path)) {
+		while ($name = readdir($dh)) {
+			if ($name[0] !== '.') {
+				$file = $path . '/' . $name;
+				if (is_dir($file)) {
+					loadDirectory($file);
+				} elseif (substr($name, -4, 4) === '.php') {
+					require_once $file;
+				}
+			}
+		}
+	}
+}
+
+function getSubclasses($parentClassName) {
+	$classes = array();
+	foreach (get_declared_classes() as $className) {
+		if (is_subclass_of($className, $parentClassName))
+			$classes[] = $className;
+	}
+
+	return $classes;
+}
+
+$apps = OC_App::getEnabledApps();
+
+foreach ($apps as $app) {
+	$dir = OC_App::getAppPath($app);
+	if (is_dir($dir . '/tests')) {
+		loadDirectory($dir . '/tests');
+	}
+}
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index 93b781bca442279940ac30fb9d21bfc311df27f8..4a2d68a3e479ab2d8327e8e021473a8a99eb083c 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -2,5 +2,6 @@
 <phpunit bootstrap="bootstrap.php">
 	<testsuite name='ownCloud'>
 		<directory suffix='.php'>lib/</directory>
+		<file>apps.php</file>
 	</testsuite>
 </phpunit>