Skip to main content

Visual Studio Code에서 CodeQL 쿼리 테스트

Visual Studio Code 익스텐션을 사용하여 CodeQL 쿼리에 대한 단위 테스트를 실행할 수 있습니다.

VS Code의 쿼리 테스트 정보

CodeQL 쿼리가 예상 결과를 생성하도록 하려면 예상 쿼리 결과를 실제 결과와 비교하는 테스트를 실행하면 됩니다.

CodeQL 익스텐션은 자동으로 "테스트" 보기에 등록됩니다. 이 보기는 현재 작업 영역에서 찾은 모든 테스트를 표시하고 작업 영역에서 테스트를 탐색하고 실행하기 위한 UI를 제공합니다.

CodeQL 테스트 만들기에 대한 자세한 내용은 "사용자 지정 쿼리 테스트" 섹션을 참조하세요.

단위 테스트 실행의 자세한 출력을 보려면 CodeQL 테스트 로그를 엽니다. 자세한 내용은 "로그 액세스"을(를) 참조하세요.

쿼리 결과 테스트

  1. Visual Studio Code의 사이드바에서 “테스트” 보기를 엽니다.

  2. 특정 테스트를 실행하려면 파일 또는 폴더 이름을 마우스로 가리키고 재생 버튼을 클릭합니다. 작업 영역에서 모든 테스트를 실행하려면 보기 상단에 있는 재생 버튼을 클릭합니다. 테스트를 실행하는 데 시간이 너무 오래 걸리는 경우 보기 상단에 있는 중지 버튼을 클릭하여 테스트를 취소할 수 있습니다.

    "테스트 실행" 버튼(모든 테스트 실행)가 진한 주황색으로 표시된 "테스트" 보기의 스크린샷

  3. 이 아이콘은 테스트 통과 또는 실패 여부를 표시합니다. 실패한 경우 "테스트 결과"에서 테스트를 클릭하여 예상 출력과 실제 출력 간의 차이를 표시합니다.

    테스트의 예상 출력과 실제 출력 간의 차이를 표시하는 "테스트 결과" 보기의 스크린샷

  4. 결과를 비교합니다. 실제 출력으로 테스트를 업데이트하려면 "테스트" 보기에서 테스트를 마우스 오른쪽 단추로 클릭하고 테스트 출력 수락을 클릭합니다.

쿼리 성능 모니터링

쿼리 성능은 대규모 데이터베이스 또는 연속 통합 시스템의 일부로 쿼리를 실행하려는 경우에 중요합니다.

쿼리 성능을 검사하려면 타이밍 및 튜플 수를 포함하도록 "쿼리 실행: 디버그" 설정을 사용하도록 설정합니다. 그러면 "출력" 보기의 CodeQL "쿼리 서버" 탭의 로그에 표시됩니다. 튜플 수는 쿼리에서 계산한 조건자의 크기를 나타내기 때문에 유용합니다. 설정 변경에 대한 자세한 내용은 "설정 사용자 지정" 섹션을 참조하세요.

쿼리가 평가되는 경우 쿼리 서버는 계산하는 조건자를 캐시합니다. 따라서 두 평가의 성능을 비교하려면 CodeQL: 캐시 지우기를 실행하여 각 실행 전에 쿼리 서버의 캐시를 지워야 합니다. 이를 통해 동등한 데이터를 비교할 수 있습니다.

CodeQL 쿼리의 성능을 모니터링하는 방법에 대한 자세한 내용은 CodeQL 설명서의 "쿼리 성능 문제 해결" 및 "QL 프로그램 평가"를 참조하세요.

다음 단계

쿼리에서 식별하려는 결과를 찾은 경우 변형 분석을 사용하여 대규모로 실행할 수 있습니다. 많은 CodeQL데이터베이스에서 대규모로 분석을 실행하는 방법에 대한 자세한 내용은 "다중 리포지토리 변형 분석을 사용하여 대규모 CodeQL 쿼리 실행" 섹션을 참조하세요.