참고: 이 문서는 2023년 1월에 CodeQL 설명서 웹 사이트에서 마이그레이션되었습니다.
쿼리 참조 파일 정보
쿼리 참조 파일은 테스트할 쿼리의 위치를 정의하는 텍스트 파일입니다.
하위 명령에 테스트 디렉터리의 일부가 아닌 쿼리를 test run
실행하도록 지시하려는 경우 쿼리 참조 파일을 사용합니다.
테스트로 실행하려는 쿼리를 지정하는 방법에는 두 가지가 있습니다.
- 쿼리 참조 파일을 사용하여 테스트할 쿼리의 위치를 지정합니다. 이는 실제 코드베이스에서 문제를 식별하기 위한 경고 및 경로 쿼리에 대한 테스트를 만들 때 유용합니다. 테스트 코드의 여러 디렉터리를 만들 수 있으며 각 디렉터리마다 쿼리의 다양한 측면에 초점을 맞출 수 있습니다. 그런 다음 테스트 코드의 각 디렉터리에 쿼리 참조 파일을 추가하여 테스트할 쿼리를 지정합니다.
- 테스트 디렉터리에 직접 쿼리를 추가합니다.
이는 일반적으로 QL 라이브러리의 동작을 테스트하기 위해 쿼리를 명시적으로 작성할 때 유용합니다. 이러한 쿼리에는 라이브러리 조건자 호출이 몇 개만 포함되어 출력을 테스트할 수 있도록 문으로
select
래핑하는 경우가 많습니다.
쿼리 참조 파일 정의
각 쿼리 참조 파일 .qlref
에는 하나의 쿼리를 찾을 위치를 정의하는 한 줄이 포함되어 있습니다. 위치는 쿼리가 포함된 CodeQL 팩의 루트를 기준으로 정의해야 합니다.
일반적으로 이 팩은 테스트 팩의 블록에 지정된 dependencies
CodeQL 팩 또는 CodeQL 팩의 전이적 종속성을 포함하는 .qlref
CodeQL 팩입니다.
시스템 간의 호환성을 보장하려면 모든 운영 체제의 경로에 슬래시를 사용해야 합니다.
예제
JavaScript 경고 쿼리를 테스트하는 쿼리 참조 파일: DeadAngularJSEventListener.qlref
의 javascript/ql/test
CodeQL 팩에 대한 파일https://github.com/github/codeql/blob/main/javascript/ql/test/qlpack.yml은 qlpack.yml
를 종속성으로 정의합니다codeql/javascript-queries
. 따라서 쿼리 참조 파일은 CodeQL 팩을 codeql/javascript-queries
기준으로 쿼리의 위치를 정의합니다.
AngularJS/DeadAngularJSEventListener.ql