파워 쿼리 SDK 테스트 프레임워크 파트 5 - 확장 커넥터 테스트
이 다중 파트 참조는 파워 쿼리 커넥터 개발자를 위한 표준 테스트 제품군의 설정 및 실행에 대해 설명합니다. 이 참조는 사용자 지정 커넥터를 테스트하기 위해 환경이 설정되었는지 확인하기 위해 순차적으로 수행됩니다.
지금까지 다음 단계를 완료했습니다.
- 환경 설정
- 테스트 데이터 업로드
- 테스트 도구 모음 다운로드
- 다양한 파일 형식 및 해당 기능에 대해 알아보았습니다.
테스트 도구 모음을 사용하여 확장 커넥터 확인을 시작할 준비가 완료되었습니다.
이 섹션에서는 다음을 수행합니다.
- 매개 변수 쿼리 및 설정 파일을 업데이트하는 방법 알아보기
- 테스트 프레임워크, 커넥터 확장 및 테스트 설정 디렉터리의 경로 설정
- 확장에 대한 자격 증명 설정
- 온전성 테스트를 실행하여 테스트 데이터의 유효성을 검사합니다.
- 표준화된 테스트 집합을 실행하여 커넥터의 유효성을 검사합니다.
- 쿼리 접기 유효성 검사 및 진단 파일에서 명령 텍스트 생성
RunPQSDKTestSuites설정.json 파일에서 PQTest.exe 및 확장 경로를 설정합니다.
\testframework\tests로 이동하고 복제된 리포지토리 폴더에서 RunPQSDKTestSuites설정.json 파일을 엽니다. 그런 다음, 구성 파일에서 PQTest.exe 및 확장의 경로를 설정합니다.
- PQTestExePath: PQTest.ext의 경로로 대체합니다. 예를 들어 C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools입니다.x.xxx.x\tools\PQTest.exe. 여기서 <Username>은 사용자 프로필 폴더의 이름이고 x.x.x 는 파워 쿼리 SDK 확장의 현재 버전이며 x.xxx.x는 파워 쿼리 SDK 도구의 현재 버전입니다.
- ExtensionPath: 확장명 mez 파일의 경로로 바꿉니다. 예를 들어 C:\dev\<커넥트orName>\<커넥트orName.mez>입니다. 여기서< 커넥트orName>은 커넥터의 이름입니다.
참고 항목
제공된 \testframework\tests\RunPQSDKTestSuites설정Template.json 템플릿에서 RunPQSDKTestSuites설정.json 파일에서 설정할 수 있는 모든 변수에 대한 자세한 정보를 찾을 수 있습니다.
데이터 원본 확장 커넥터와 관련된 세부 정보로 매개 변수 쿼리 및 설정 파일 업데이트
PowerShell 스크립트 .\RunPQSDKTestSuites.ps1을 실행하면 다음과 같이 확장 이름이> 있는 <폴더와 설정 및 ParameterQueries 폴더를 만들어 매개 변수 쿼리 및 테스트 설정을 만듭니다.
- testframework\tests\커넥트orConfigs\<Extension Name>\ParameterQueries
- testframework\tests\커넥트orConfigs\<Extension Name>\설정
다음 예제에서는 Contoso라는 커넥터의 경로가 어떻게 표시되는지 보여 줍니다.
- testframework\tests\TestSuites\Contoso\ParameterQueries
- testframework\tests\TestSuites\Contoso\설정
참고 항목
생성된 매개 변수 쿼리 파일에서 M 쿼리를 업데이트하여 데이터 원본에 연결하고 이전에 업로드한 NycTaxiGreen 및 TaxiZoneLookup 테이블을 검색합니다.
또는 데이터 원본에 대한 매개 변수 쿼리 파일 및 설정 파일을 수동으로 만들려면 다음 단계를 수행합니다.
- 복제된 리포지토리 폴더 아래의 \testframework\tests\커넥트orConfigs 폴더로 이동합니다.
- \generic 폴더의 복사본을 만들고 이름을 확장 이름으로 바꿉니다.
- \ParameterQueries 폴더에서 각 파일을 열고 해당 파일에 제공된 지침으로 M 쿼리를 업데이트합니다.
- \설정 폴더에서 각 파일을 열고 올바른 매개 변수 쿼리 파일을 가리키도록 해당 파일을 업데이트합니다.
확장 커넥터에 대한 자격 증명 설정
set-credential 명령에 대한 지침에 따라 커넥터에 대한 자격 증명이 설정되어 있는지 확인합니다.
또는 자격 증명 템플릿 명령을 사용하여 set-credential 명령에 전달할 수 있는 커넥터에 대한 자격 증명 템플릿을 JSON 형식으로 생성합니다. 자격 증명 템플릿을 생성하려면 사용 현황에 대한 자격 증명 템플릿 섹션을 참조하세요.
# <Path to PQTest.exe>.\PQTest.exe credential-template -e <Path to Extension.exe> -q "<Replace with path to any parameter query file>" --prettyPrint --authenticationKind <Specify the authentication kind (Anonymous, UsernamePassword, Key, Windows, OAuth2)>
# Example:
C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.126.3\tools\PQTest.exe credential-template -e "C:\dev\Contoso\Contoso.mez" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\ParameterQueries\Contoso\Contoso.parameterquery.pq" --prettyPrint --authenticationKind UsernamePassword
이전 명령의 출력을 가져와서 자리 표시자 값을 올바른 자격 증명으로 바꾸고 JSON 파일(예: contoso_cred.json)으로 저장합니다.
그런 다음, 이 set-credential 명령을 사용하여 비교 명령에서 테스트를 실행하는 데 사용되는 자격 증명을 저장합니다. 기존 PowerShell 창을 사용하여 이전 단계에서 생성된 JSON 자격 증명 파일을 사용하여 확장에 대한 자격 증명을 설정합니다. 사용량에 대한 집합 자격 증명 섹션을 참조하여 커넥터에 대한 자격 증명을 설정합니다.
$PQTestExe = "C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe"
$Extension = "C:\dev\Contoso\Contoso.mez"
# Get-Content "<Replace with path to the json credential file>" | & $PQTestExe set-credential -e $Extension -q "<Replace with the path to any parameter query file>"
# Example:
Get-Content "C:\dev\Misc\contoso_cred.json" | & C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.126.3\tools\PQTest.exe set-credential -p -e "C:\dev\Contoso\Contoso.mez" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\Contoso\ParameterQueries\Contoso.parameterquery.pq"
온전성 테스트를 실행하여 테스트 데이터가 올바르게 설정되었는지 확인합니다.
변경 내용이 작동하고 데이터 설정이 올바르게 수행되었는지 확인하려면 다음과 같이 \testframework\tests\TestSuites 디렉터리에 있는 RunPQSDKTestSuites.ps1 유틸리티를 사용하여 정신 테스트를 실행합니다.
.\RunPQSDKTestSuites.ps1 -TestSettingsList SanitySettings.json
<#
Example:
PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -TestSettingsList SanitySettings.json
Output:
----------------------------------------------------------------------------------------------
PQ SDK Test Framework - Test Execution - Test Results Summary for Extension: Contoso.pqx
----------------------------------------------------------------------------------------------
TestFolder TestName OutputStatus TestStatus Duration
---------- -------- ------------ ---------- --------
Sanity\Taxi AllTypes.query.pq Passed Passed 00:00:00.0227976
Sanity\Taxi AllTypesRowCount.query.pq Passed Passed 00:00:00.0001734
Sanity\Taxi AllTypesSchema.query.pq Passed Passed 00:00:00.0001085
Sanity\Zone AllTypesZone.query.pq Passed Passed 00:00:00.0010058
Sanity\Zone AllTypesZoneRowCount.query.pq Passed Passed 00:00:00.0001786
Sanity\Zone AllTypesZoneSchema.query.pq Passed Passed 00:00:00.0000920
----------------------------------------------------------------------------------------------
Total Tests: 6 | Passed: 6 | Failed: 0 | Total Duration: 00d:00h:00m:01s
----------------------------------------------------------------------------------------------
#>
정신 및 표준 테스트 실행
RunPQSDKTestSuites.ps1 유틸리티를 사용하여 실행
설정 파일에서 정의한 모든 온전성 및 표준 테스트 또는 테스트 집합을 실행하려면 다음 명령을 실행하여 테스트를 실행합니다.
# Run all the Sanity & Standard Tests
.\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1
RunPQSDKTestSuites.ps1 유틸리티에 대해 자세히 알아보려면 다음과 같이 Get-Help 명령을 실행합니다.
Get-Help .\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> Get-Help .\RunPQSDKTestSuites.ps1 -Detailed
PQTest.exe 사용하여 실행
동일한 PowerShell 창에서 다음 명령을 사용하여 PQTest.exe 사용하여 특정 테스트를 직접 실행합니다.
# <Path to PQTest.exe>PQTest.exe compare -p -e $Extension -pa <Replace with path to the parameter query> -q <Replace with the the path to test query>
# Example:
C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.114.4\tools\PQTest.exe compare -p -e "$Extension" -pa "C:\dev\DataConnectors\testframework\tests\TestSuites\Contoso\ParameterQueries\Contoso.parameterquery.pq" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\Standard\Datatypes\Cast.query.pq"
PQTest.exe 사용하여 테스트를 실행하는 방법에 대한 자세한 내용은 pqtest-overview의 설명서를 검토하세요.
쿼리 폴딩 테스트 실행
모든 온전성 및 표준 테스트 아래의 테스트를 실행하여 쿼리 폴딩의 유효성을 검사할 수 있습니다. 처음으로 테스트를 실행하여 \testframework\tests\<Extension Name>\Diagnostics\ 폴더 아래에 진단 출력 파일을 생성합니다. 후속 실행은 진단 출력 파일로 생성된 출력의 유효성을 검사합니다.
RunPQSDKTestSuites.ps1 유틸리티를 사용하여 쿼리 폴딩 테스트 실행
다음과 같이 온전성 및 표준 테스트에 대한 쿼리 폴딩의 유효성을 검사합니다.
.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
참고 항목
또는 \testframework\tests\TestSuite\RunPQSDKTestSuites설정.json 파일에 지정 ValidateQueryFolding=True
합니다.
PQTest.exe 사용하여 쿼리 폴딩 테스트 실행
# <Path to PQText.exe> compare -p -e $Extension -pa <Replace with path to the parameter query> -q <Replace with the the path to test query> -dfp <Replace with path to the diagnostic output file>
# Example:
C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.114.4\tools\PQTest.exe compare -p -e "$Extension" -pa "C:\dev\DataConnectors\testframework\tests\TestSuites\ParameterQueries\Contoso\Contoso.parameterquery.pq" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\Standard\Datatypes\Cast.query.pq" -dfp "C:\dev\DataConnectors\testframework\tests\TestSuites\Contoso\Diagnostics"
결론
이 섹션에서는 매개 변수 쿼리 및 설정 파일을 설정하는 단계를 설명한 다음, 유효성 및 표준화된 테스트 집합을 실행하여 확장 커넥터의 유효성을 검사하는 데 필요합니다.
다음 섹션에서는 더 많은 테스트를 추가하는 방법을 알아봅니다. 또한 테스트 프레임워크 내에서 사용할 수 있는 다양한 명령 및 옵션과 테스트 요구 사항에 맞게 사용자 지정 가능한 다양한 설정에 대해서도 알아봅니다.