diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index 349c36694b935c79c28ea0ed2b7e61a60b12c09d..46e6587c528274777804bfac184da309551ae6bc 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -648,6 +648,8 @@ void PluginManager::startTests()
 {
 #ifdef WITH_TESTS
     foreach (PluginSpec *pluginSpec, d->testSpecs) {
+        if (!pluginSpec->plugin())
+            continue;
         const QMetaObject *mo = pluginSpec->plugin()->metaObject();
         QStringList methods;
         methods.append("arg0");
@@ -659,7 +661,10 @@ void PluginManager::startTests()
                 methods.append(method.left(method.size()-2));
             }
         }
-        QTest::qExec(pluginSpec->plugin(), methods);
+        // Don't run QTest::qExec with only one argument, that'd run
+        // *all* slots as tests.
+        if (methods.size() > 1)
+            QTest::qExec(pluginSpec->plugin(), methods);
     }
     if (!d->testSpecs.isEmpty())
         QTimer::singleShot(1, QCoreApplication::instance(), SLOT(quit()));