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 팩의 루트를 기준으로 정의해야 합니다. 일반적으로 이 팩은 테스트 팩의 블록에 지정된 dependencies CodeQL 팩 또는 CodeQL 팩의 전이적 종속성을 포함하는 .qlrefCodeQL 팩입니다.

시스템 간의 호환성을 보장하려면 모든 운영 체제의 경로에 슬래시를 사용해야 합니다.

예제

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

또 다른 예제는 사용자 지정 쿼리 테스트를 참조하세요.