diff --git a/src/plugins/autotest/testcodeparser.cpp b/src/plugins/autotest/testcodeparser.cpp
index 907b61be0f5c3b15776395d21b5b1d92bbfe7727..ce0a655c2c67b75c23e8b7f5f43d5713bc77a4f8 100644
--- a/src/plugins/autotest/testcodeparser.cpp
+++ b/src/plugins/autotest/testcodeparser.cpp
@@ -199,7 +199,7 @@ static bool parsingHasFailed;
 
 /****** threaded parsing stuff *******/
 
-void TestCodeParser::onDocumentUpdated(const QString &fileName)
+void TestCodeParser::onDocumentUpdated(const QString &fileName, bool isQmlFile)
 {
     if (m_codeModelParsing || m_fullUpdatePostponed)
         return;
@@ -207,7 +207,8 @@ void TestCodeParser::onDocumentUpdated(const QString &fileName)
     Project *project = SessionManager::startupProject();
     if (!project)
         return;
-    if (!SessionManager::projectContainsFile(project, Utils::FileName::fromString(fileName)))
+    // Quick tests: qml files aren't necessarily listed inside project files
+    if (!isQmlFile && !SessionManager::projectContainsFile(project, Utils::FileName::fromString(fileName)))
         return;
 
     scanForTests(QStringList(fileName));
@@ -222,7 +223,7 @@ void TestCodeParser::onQmlDocumentUpdated(const QmlJS::Document::Ptr &document)
 {
     const QString fileName = document->fileName();
     if (!fileName.endsWith(".qbs"))
-        onDocumentUpdated(fileName);
+        onDocumentUpdated(fileName, true);
 }
 
 void TestCodeParser::onStartupProjectChanged(Project *project)
diff --git a/src/plugins/autotest/testcodeparser.h b/src/plugins/autotest/testcodeparser.h
index e06563d18a6b612f116c6816f8a213791d094bd5..4dbacc7ad72c400d805ca3ad8c4c369b4a6e4541 100644
--- a/src/plugins/autotest/testcodeparser.h
+++ b/src/plugins/autotest/testcodeparser.h
@@ -88,7 +88,8 @@ private:
     bool postponed(const QStringList &fileList);
     void scanForTests(const QStringList &fileList = QStringList(), ITestParser *parser = nullptr);
 
-    void onDocumentUpdated(const QString &fileName);
+    // qml files must be handled slightly different
+    void onDocumentUpdated(const QString &fileName, bool isQmlFile = false);
     void onTaskStarted(Core::Id type);
     void onAllTasksFinished(Core::Id type);
     void onFinished();