Power Query SDK test framework ตอนที่ 5b - การทดสอบตัวเชื่อมต่อส่วนขยายของคุณด้วย PowerShell

Note

บทความนี้ครอบคลุมการทดสอบโดยใช้ยูทิลิตี้ PowerShell สําหรับการทดสอบโดยใช้ Visual Studio Code Test Explorer โปรดดู Power Query SDK ทดสอบเฟรมเวิร์กส่วนที่ 5a - การทดสอบตัวเชื่อมต่อส่วนขยายของคุณด้วย Visual Studio Code

การอ้างอิงหลายส่วนนี้ครอบคลุมถึงการตั้งค่าและการเรียกใช้งานชุดการทดสอบมาตรฐานสําหรับนักพัฒนาตัวเชื่อมต่อ Power Query การอ้างอิงนี้มีไว้เพื่อทําตามลําดับเพื่อให้แน่ใจว่า สภาพแวดล้อมของคุณถูกตั้งค่าสําหรับการทดสอบตัวเชื่อมต่อแบบกําหนดเองของคุณ

ถึงตอนนี้ คุณทําตามขั้นตอนต่อไปนี้เสร็จแล้ว:

  • ตั้งค่าสภาพแวดล้อม
  • อัปโหลดข้อมูลทดสอบแล้ว
  • ดาวน์โหลดชุดการทดสอบแล้ว
  • เรียนรู้รูปแบบไฟล์ต่าง ๆ และฟังก์ชันการทํางานของพวกเขา

ในที่สุดคุณก็พร้อมที่จะเริ่มตรวจสอบตัวเชื่อมต่อส่วนขยายของคุณด้วยชุดการทดสอบ

ในส่วนนี้ คุณ:

  • เรียนรู้วิธีการอัปเดตคิวรีพารามิเตอร์และไฟล์การตั้งค่า
  • ตั้งค่าเส้นทางสําหรับเฟรมเวิร์กการทดสอบ ส่วนขยายตัวเชื่อมต่อ และการตั้งค่าการทดสอบไดเรกทอรี
  • ตั้งค่าข้อมูลประจําตัวสําหรับส่วนขยาย
  • ตรวจสอบความถูกต้องของข้อมูลทดสอบโดยการรันการทดสอบสติ
  • ตรวจสอบตัวเชื่อมต่อของคุณโดยการเรียกใช้ชุดการทดสอบที่ได้มาตรฐาน
  • ตรวจสอบการพับคิวรีและสร้างข้อความคําสั่งในไฟล์การวินิจฉัย

ตั้งค่า PQTest.exe และเส้นทางส่วนขยายในไฟล์ RunPQSDKTestSuitesSettings.json

นําทางไปยัง \testframework\tests and open the RunPQSDKTestSuitesSettings.jsบนไฟล์ในโฟลเดอร์ repo ที่ถูกลอกแบบ จากนั้นตั้งค่าเส้นทางสําหรับ PQTest.exe และส่วนขยายในไฟล์กําหนดค่า:

  • PQTestExePath: แทนที่ ด้วยเส้นทางไปยัง PQTest.ext ตัวอย่างเช่น C:\Users\<UserName>\.vscode\extensions\powerquery..c vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, ที่ <Username> คือชื่อของโฟลเดอร์โปรไฟล์ผู้ใช้ของคุณ x.x.x เป็นส่วนขยาย Power Query SDK รุ่นปัจจุบัน และ x.xxx.x เป็นเวอร์ชันปัจจุบันของเครื่องมือ Power Query SDK
  • ExtensionPath: แทนที่ ด้วยเส้นทางไปยังแฟ้ม mez ส่วนขยาย ตัวอย่างเช่น C:\dev\<ConnectorName>\<ConnectorName.mez> โดยที่ <ConnectorName> คือชื่อของตัวเชื่อมต่อของคุณ

Note

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรทั้งหมดที่คุณสามารถตั้งค่าได้ในไฟล์ RunPQSDKTestSuitesSettings.json ใน \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsที่ระบุในเท็มเพลต

อัปเดตคิวรีพารามิเตอร์และไฟล์การตั้งค่าที่มีรายละเอียดเฉพาะสําหรับตัวเชื่อมต่อส่วนขยายแหล่งข้อมูลของคุณ

การเรียกใช้สคริปต์ PowerShell\RunPQSDKTestSuites.ps1 สร้างคิวรีพารามิเตอร์และทดสอบการตั้งค่าโดยการสร้างโฟลเดอร์ที่มี <ชื่อ>ส่วนขยายและโฟลเดอร์การตั้งค่าและ ParameterQueries ภายใต้รายการต่อไปนี้:

  • testframework\tests\ConnectorConfigs\<Extension Name>\ParameterQueries
  • testframework\tests\ConnectorConfigs\<Extension Name>\Settings

ตัวอย่างต่อไปนี้แสดงสิ่งที่เส้นทางสําหรับตัวเชื่อมต่อที่ชื่อว่า Contoso จะมีลักษณะดังนี้:

  • testframework\tests\TestSuites\Contoso\ParameterQueries
  • testframework\tests\TestSuites\Contoso\Settings

Note

อัปเดตคิวรี M ในไฟล์คิวรีพารามิเตอร์ที่สร้างขึ้นเพื่อเชื่อมต่อกับแหล่งข้อมูลของคุณ และเรียกใช้ตาราง NycTaxiGreen & TaxiZoneLookup ที่อัปโหลดก่อนหน้านี้

อีกวิธีหนึ่งคือสร้างไฟล์คิวรีพารามิเตอร์และไฟล์การตั้งค่าสําหรับแหล่งข้อมูลของคุณด้วยตนเองโดยทําตามขั้นตอนด้านล่าง:

  1. นําทางไปยังโฟลเดอร์ \testframework\tests\ConnectorConfigs ภายใต้โฟลเดอร์ repo ที่ถูกลอกแบบ
  2. ทําสําเนาของโฟลเดอร์ \generic และเปลี่ยนชื่อเป็นชื่อนามสกุล
  3. เปิดแต่ละไฟล์ในโฟลเดอร์ \ParameterQueries และอัปเดตคิวรี M ตามคําแนะนําที่ระบุไว้ในไฟล์เหล่านั้น
  4. เปิดแต่ละไฟล์ในโฟลเดอร์ \Settings และอัปเดตเส้นทางของไฟล์แบบสอบถามพารามิเตอร์ที่ถูกต้อง

ตั้งค่าข้อมูลประจําตัวสําหรับตัวเชื่อมต่อส่วนขยายของคุณ

ตรวจสอบให้แน่ใจว่ามีการตั้งค่าข้อมูลประจําตัวสําหรับตัวเชื่อมต่อของคุณโดยทําตามคําแนะนําสําหรับคําสั่งตั้งค่าข้อมูลประจําตัว

อีกวิธีหนึ่งคือ สร้างเทมเพลตข้อมูลประจําตัวในรูปแบบ JSON สําหรับตัวเชื่อมต่อของคุณโดยใช้คําสั่ง เทมเพลตข้อมูลประจําตัว ที่สามารถส่งผ่านไปยังคําสั่ง ข้อมูลประจําตัวการตั้งค่า ได้ สําหรับข้อมูลเกี่ยวกับการใช้งานเพื่อสร้างเทมเพลตข้อมูลประจําตัว โปรดดูที่ส่วน credential-template

# <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"

ตรวจสอบความถูกต้องของข้อมูลการทดสอบได้รับการตั้งค่าอย่างถูกต้องโดยการรันการทดสอบสติ

เพื่อให้แน่ใจว่าการเปลี่ยนแปลงกําลังทํางานอยู่และการตั้งค่าข้อมูลเสร็จสิ้นอย่างถูกต้อง ให้เรียกใช้การทดสอบสติโดยใช้ยูทิลิตี้ RunPQSDKTestSuites.ps1 ที่มีอยู่ในไดเรกทอรี \testframework\tests\TestSuites ดังนี้:

.\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 .\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> Get-Help .\RunPQSDKTestSuites.ps1 -Detailed

เรียกใช้โดยใช้ PQTest.exe

เมื่อต้องการเรียกใช้การทดสอบแบบเฉพาะโดยตรงโดยใช้ PQTest.exeให้ใช้คําสั่งต่อไปนี้ในหน้าต่าง PowerShell เดียวกัน:

# <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 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบการรันด้วย PQTest.exe

การเรียกใช้การทดสอบการพับคิวรี

สามารถเรียกใช้การทดสอบภายใต้สติและการทดสอบมาตรฐานใด ๆ เพื่อตรวจสอบการพับคิวรี เรียกใช้การทดสอบในครั้งแรกเพื่อสร้างไฟล์เอาต์พุตการวินิจฉัยภายใต้โฟลเดอร์ \testframework\tests\<Extension Name>\Diagnostics\ เรียกใช้ในภายหลังตรวจสอบเอาต์พุตที่สร้างขึ้นด้วยไฟล์เอาต์พุตการวินิจฉัย

เรียกใช้การทดสอบการพับคิวรีโดยใช้ยูทิลิตี้ RunPQSDKTestSuites.ps1

ตรวจสอบความถูกต้องของการพับคิวรีสําหรับการทดสอบสติและมาตรฐานดังนี้:

.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding

Note

หรือระบุ ValidateQueryFolding=True ใน \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jsบนไฟล์

เรียกใช้การทดสอบการพับคิวรีโดยใช้ 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"

บทสรุป

ส่วนนี้ครอบคลุมขั้นตอนในการตั้งค่าคิวรีพารามิเตอร์และไฟล์การตั้งค่าซึ่งจากนั้นจะต้องตรวจสอบตัวเชื่อมต่อส่วนขยายของคุณโดยการเรียกใช้การทดสอบสติและชุดมาตรฐาน

ในส่วนถัดไป คุณจะได้เรียนรู้วิธีการเพิ่มการทดสอบเพิ่มเติม คุณยังได้เรียนรู้เกี่ยวกับคําสั่งและตัวเลือกต่าง ๆ ที่พร้อมใช้งานภายในเฟรมเวิร์กการทดสอบ และการตั้งค่าที่สามารถกําหนดเองได้ต่าง ๆ สําหรับความต้องการทดสอบของคุณ

ขั้นตอนต่อไป

เฟรมเวิร์กการทดสอบ Power Query SDK ส่วนที่ 6 - การเพิ่มการทดสอบของคุณและทําความเข้าใจตัวเลือกต่าง ๆ