Skip to main content

Testen von CodeQL-Abfragen in Visual Studio Code

Sie können Unittests für CodeQL-Abfragen mit der Visual Studio Code-Erweiterung durchführen.

Informationen zu Testabfragen in VS Code

Um sicherzustellen, dass Ihre CodeQL-Abfragen die erwarteten Ergebnisse liefern, können Sie Tests ausführen, die die erwarteten Abfrageergebnisse mit den tatsächlichen Ergebnissen vergleichen.

Die CodeQL-Erweiterung registriert sich automatisch mit der Ansicht „Testen“. In dieser Ansicht werden alle Tests in Ihrem aktuellen Arbeitsbereich angezeigt und eine Benutzeroberfläche zum Untersuchen und Ausführen von Tests in Ihrem Arbeitsbereich bereitgestellt.

Weitere Informationen zu CodeQL finden Sie unter „Testen benutzerdefinierter Abfragen“.

Um eine detailliertere Ausgabe der laufenden Unittests zu sehen, öffnen Sie das CodeQL-Testprotokoll. Informationen finden Sie unter „Zugreifen auf Protokolle“.

Testen der Ergebnisse Ihrer Abfragen

  1. Öffnen Sie in Visual Studio Code die Ansicht „Testen“ in der Seitenleiste.

  2. Um einen bestimmten Test auszuführen, zeigen Sie mit der Maus auf den Namen der Datei oder des Ordners, und klicken Sie auf die Wiedergabeschaltfläche. Wenn Sie alle Tests in Ihrem Arbeitsbereich ausführen möchten, klicken Sie oben in der Ansicht auf die Wiedergabeschaltfläche. Wenn ein Test zu lange dauert, können Sie oben in der Ansicht auf die Stoppschaltfläche klicken, um den Test abzubrechen.

    Screenshot der Ansicht „Testen“ mit der Schaltfläche „Test ausführen“ (zum Ausführen aller Tests), dunkelorange umrandet.

  3. Die Symbole zeigen an, ob ein Test bestanden oder fehlgeschlagen ist. Wenn der Fehler aufgetreten ist, klicken Sie auf den Test in „Testergebnisse“, um die Unterschiede zwischen der erwarteten Ausgabe und der tatsächlichen Ausgabe anzuzeigen.

    Screenshot der Ansicht „Testergebnisse“ mit den Unterschieden zwischen der erwarteten Ausgabe und der tatsächlichen Ausgabe für einen Test.

  4. Vergleichen der Ergebnisse Wenn Sie den Test mit der tatsächlichen Ausgabe aktualisieren möchten, klicken Sie in der Ansicht „Test“ mit der rechten Maustaste auf den Test, und klicken Sie auf Testausgabe annehmen.

Überwachen der Leistung Ihrer Abfragen

Die Abfrageleistung ist wichtig, wenn Sie eine Abfrage für große Datenbanken oder als Teil Ihres kontinuierlichen Integrationssystems ausführen möchten.

Wenn Sie die Abfrageleistung untersuchen möchten, aktivieren Sie die Einstellung „Ausführen von Abfragen: Debuggen“, um Anzeigedauer und Tupelanzahl einzuschließen. Dies wird dann in den Protokollen auf der CodeQL-Registerkarte „Abfrageserver“ in der Ansicht „Ausgabe“ angezeigt. Die Tupelanzahl ist nützlich, da sie die Größe der von der Abfrage berechneten Prädikate angibt. Weitere Informationen zu den Einstellungen finden Sie unter „Anpassen von Einstellungen“.

Wenn eine Abfrage ausgewertet wird, speichert der Abfrageserver die berechneten Prädikate zwischen. Wenn Sie also die Leistung von zwei Auswertungen vergleichen möchten, sollten Sie CodeQL: Cache löschen ausführen, um den Cache des Abfrageservers vor jeder Ausführung zu löschen. Dadurch wird sichergestellt, dass Sie gleichwertige Daten vergleichen.

Weitere Informationen zum Überwachen der Leistung Ihrer CodeQL-Abfragen finden Sie in der Dokumentation zu CodeQL unter „Problembehandlung bei der Abfrageleistung“ und „Auswertung von QL-Programmen“.

Nächste Schritte

Wenn Sie sicher sind, dass Ihre Abfrage die Ergebnisse findet, die Sie identifizieren möchten, können Sie die Variantenanalyse verwenden, um sie im großen Stil auszuführen. Informationen zum Ausführen von Analysen im Großen Stil in vielen CodeQL-Datenbanken finden Sie unter „Ausführung von CodeQL-Abfragen im Maßstab mit Multi-Repository-Variantenanalyse“.