Skip to main content

쿼리 참조 파일

쿼리 참조 파일을 사용하여 테스트에서 실행하려는 쿼리의 위치를 정의할 수 있습니다.

GitHub CodeQL은(는) 설치 시 사용자별로 라이선스가 부여됩니다. 라이선스 제한에 따라 특정 작업에만 CodeQL을(를) 사용할 수 있습니다. 자세한 내용은 "CodeQL CLI 알아보기"을 참조하세요.

GitHub Advanced Security 라이선스가 있는 경우 CodeQL을(를) 사용하여 분석 자동화, 연속 통합 및 지속적인 업데이트를 할 수 있습니다. 자세한 내용은 "GitHub Advanced Security 정보.

참고: 이 문서는 2023년 1월에 CodeQL 설명서 웹 사이트에서 마이그레이션되었습니다.

쿼리 참조 파일 정보

쿼리 참조 파일은 테스트할 쿼리 한 개의 위치를 정의하는 텍스트 파일입니다.

테스트 디렉터리의 일부가 아닌 쿼리를 실행하도록 test run 하위 명령에 지시하려면 쿼리 참조 파일을 사용합니다. 테스트로 실행하려는 쿼리를 지정하는 방법에는 두 가지가 있습니다.

  1. 쿼리 참조 파일을 사용하여 테스트할 쿼리의 위치를 지정합니다. 이는 실제 코드베이스에서 문제를 식별하기 위한 용도의 경고 및 경로 쿼리에 대한 테스트를 만들 때 유용합니다. 테스트 코드의 디렉터리를 여러 개 만들 수 있으며, 각 디렉터리는 쿼리의 다양한 측면에 초점을 맞춥니다. 그런 다음 테스트 코드의 각 디렉터리에 쿼리 참조 파일을 추가하여, 테스트할 쿼리를 지정합니다.
  2. 테스트 디렉터리에 직접 쿼리를 추가합니다. 이는 보통 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

다른 예시를 보려면 "사용자 지정 쿼리 테스트"을(를) 참조하세요.