{"meta":{"title":"Abfragereferenzdateien","intro":"Du kannst Abfragereferenzdateien verwenden, um den Speicherort einer Abfrage zu definieren, die du in Tests ausführen möchtest.","product":"Sicherheit und Codequalität","breadcrumbs":[{"href":"/de/code-security","title":"Sicherheit und Codequalität"},{"href":"/de/code-security/concepts","title":"Concepts"},{"href":"/de/code-security/concepts/code-scanning","title":"Codeüberprüfung"},{"href":"/de/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/de/code-security/concepts/code-scanning/codeql/query-reference-files","title":"Abfragereferenzdateien"}],"documentType":"article"},"body":"# Abfragereferenzdateien\n\nDu kannst Abfragereferenzdateien verwenden, um den Speicherort einer Abfrage zu definieren, die du in Tests ausführen möchtest.\n\n## Informationen zu Abfragereferenzdateien\n\nEine Abfragereferenzdatei ist eine Textdatei, die den Speicherort einer zu testenden Abfrage definiert.\n\nDu verwendest eine Abfragereferenzdatei, wenn du den Unterbefehl `test run` anweisen möchtest, eine Abfrage auszuführen, die nicht Teil eines Testverzeichnisses ist.\nEs gibt zwei Möglichkeiten, Abfragen anzugeben, die du als Tests ausführen möchtest:\n\n1. Du verwendest eine Abfragereferenzdatei, um den Speicherort einer Abfrage anzugeben, die getestet werden soll.\n   Dies ist nützlich, wenn du Tests für Warnungs- und Pfadabfragen erstellst, die Probleme in echten Codebases identifizieren sollen. Du kannst mehrere Verzeichnisse mit Testcode erstellen, die sich jeweils auf unterschiedliche Aspekte der Abfrage konzentrieren. Anschließend fügst du jedem Verzeichnis mit Testcode eine Abfragereferenzdatei hinzu, um die zu testende Abfrage anzugeben.\n2. Du fügst die Abfrage direkt einem Verzeichnis von Tests hinzu.\n   Dies ist in der Regel nützlich, wenn du Abfragen explizit schreibst, um das Verhalten von QL-Bibliotheken zu testen. Häufig enthalten diese Abfragen nur einige Aufrufe von Bibliotheksprädikaten, indem sie in eine `select`-Anweisung eingebunden werden, damit ihre Ausgabe getestet werden kann.\n\n## Definieren einer Abfragereferenzdatei\n\nJede Abfragereferenzdatei (`.qlref`) enthält eine einzelne Zeile, die definiert, wo eine Abfrage zu finden ist. Der Speicherort muss relativ zur Wurzel des CodeQL-Pakets definiert werden, das die Abfrage enthält.\nIn der Regel handelt es sich entweder um das CodeQL-Paket, das die `.qlref`-Datei enthält, ein im `dependencies`-Block für das Testpaket angegebenes CodeQL-Paket oder eine transitive Abhängigkeit des CodeQL-Pakets.\n\nDu solltest auf allen Betriebssystemen Schrägstriche im Pfad verwenden, um die Kompatibilität zwischen den Systemen sicherzustellen.\n\n### Example\n\nAbfragereferenzdatei zum Testen einer JavaScript-Warnungsabfrage: [DeadAngularJSEventListener.qlref](https://github.com/github/codeql/blob/main/javascript/ql/test/query-tests/AngularJS/DeadAngularJSEventListener/DeadAngularJSEventListener.qlref)\n\nDie `qlpack.yml`-Datei <https://github.com/github/codeql/blob/main/javascript/ql/test/qlpack.yml> für das CodeQL-Paket in `javascript/ql/test` definiert `codeql/javascript-queries` als Abhängigkeit. Daher definiert die Abfragereferenzdatei den Speicherort der Abfrage relativ zum CodeQL-Paket `codeql/javascript-queries`:\n\n```shell\nAngularJS/DeadAngularJSEventListener.ql\n```\n\nEin weiteres Beispiel findest du unter [Testen benutzerdefinierter Abfragen](/de/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/testing-custom-queries)."}