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