Compartir a través de


Marco de pruebas del SDK de Power Query, parte 5: prueba del conector de extensión

Esta referencia de varias partes abarca la configuración y ejecución de un conjunto estándar de pruebas para desarrolladores de conectores de Power Query. Esta referencia está pensada para realizarse secuencialmente a fin de asegurarse de que el entorno está configurado para probar el conector personalizado.

Hasta ahora ha completado los pasos siguientes:

  • Configuración del entorno
  • Carga de los datos de prueba
  • Descarga del conjunto de pruebas
  • Aprender varios formatos de archivo y su funcionalidad

Finalmente está listo para empezar a comprobar el conector de extensión con el conjunto de pruebas.

En esta sección:

  • Obtenga información sobre cómo actualizar las consultas de parámetros y los archivos de configuración
  • Establecer la ruta de acceso para el marco de pruebas, la extensión del conector y el directorio de configuración de pruebas
  • Establecer credenciales para la extensión
  • Validar los datos de prueba mediante la ejecución de pruebas de integridad
  • Validar el conector mediante la ejecución del conjunto estandarizado de pruebas
  • Validar el plegado de consultas y generar texto de comandos en archivos de diagnóstico

Establecer las rutas de acceso de PQTest.exe y extensión en el archivo RunPQSDKTestSuitesSettings.json

Vaya a \testframework\tests y abra el archivo RunPQSDKTestSuitesSettings.json en la carpeta del repositorio clonado. A continuación, establezca las rutas de acceso para PQTest.exe y la extensión en el archivo de configuración:

  • PQTestExePath: reemplace por la ruta de acceso a PQTest.ext. Por ejemplo, C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, donde <Username> es el nombre de la carpeta de perfil de usuario, x.x.x es la versión actual de la extensión del SDK de Power Query y x.xxx.x es la versión actual de las herramientas del SDK de Power Query.
  • ExtensionPath: reemplace por la ruta de acceso al archivo mez de extensión. Por ejemplo, C:\dev\<ConnectorName>\<ConnectorName>.mez, donde <ConnectorName> es el nombre del conector.

Nota:

Puede encontrar más información sobre todas las variables que puede establecer en el archivo RunPQSDKTestSuitesSettings.json en la plantilla \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.json proporcionada.

Actualice las consultas de parámetros y el archivo de configuración con los detalles específicos del conector de la extensión del origen de datos.

Al ejecutar el script de PowerShell .\RunPQSDKTestSuites.ps1, se crean las consultas de parámetros y la configuración de prueba mediante la creación de una carpeta con <nombre de extensión> y las carpetas Configuración y ParameterQueries de la siguiente manera:

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

En los ejemplos siguientes se muestra el aspecto de las rutas de acceso de un conector denominado Contoso:

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

Nota:

Actualice la consulta M en los archivos de consulta de parámetros generados para conectarse con el origen de datos y recuperar las tablas NycTaxiGreen y TaxiZoneLookup cargadas anteriormente.

Como alternativa, para crear manualmente los archivos de consulta de parámetros y los archivos de configuración para el origen de datos, realice los pasos siguientes:

  1. Vaya a la carpeta \testframework\tests\ConnectorConfigs en la carpeta del repositorio clonado.
  2. Realice una copia de la carpeta \generic y cambie el nombre por el de la extensión.
  3. Abra cada archivo en la carpeta \ParameterQueries y actualice la consulta M según las instrucciones proporcionadas en esos archivos.
  4. Abra cada archivo de la carpeta \Settings y actualice esos archivos para que apunten al archivo de consulta de parámetros correcto.

Establecer credenciales para el conector de extensión

Asegúrese de que las credenciales estén configuradas para el conector siguiendo las instrucciones del comando set-credential.

Como alternativa, use el comando credential-template para generar una plantilla de credencial en formato JSON para el conector que se puede pasar al comando set-credential. Consulte la sección credential-template sobre el uso para generar una plantilla de credenciales.

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

Tome la salida del comando anterior y reemplace los valores de marcador de posición por credenciales correctas y guárdelo como un archivo JSON (por ejemplo, contoso_cred.json).

A continuación, use este comando set-credential para almacenar las credenciales que usa el comando compare para ejecutar las pruebas. Con la ventana de PowerShell existente, establezca las credenciales de la extensión mediante el archivo de credenciales JSON generado en el paso anterior. Consulte la sección set-credential sobre el uso para configurar las credenciales del conector.

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

Validar que los datos de prueba se configuran correctamente mediante la ejecución de las pruebas de integridad

Para asegurarse de que los cambios funcionan y que la configuración de datos se realiza correctamente, ejecute las pruebas de integridad mediante la utilidad RunPQSDKTestSuites.ps1 presente en el directorio \testframework\tests\TestSuites de la siguiente manera:

.\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
----------------------------------------------------------------------------------------------
#>

Ejecución de las pruebas estándar y de integridad

Ejecución con la utilidad RunPQSDKTestSuites.ps1

Para ejecutar todas las pruebas estándar y de integridad o un conjunto de pruebas definidas por el archivo de configuración, ejecute el siguiente comando para ejecutar las pruebas:

# Run all the Sanity & Standard Tests
.\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1

Para obtener más información sobre la utilidad RunPQSDKTestSuites.ps1, ejecute el comando Get-Help como se indica a continuación:

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

Ejecución mediante PQTest.exe

Use el siguiente comando en la misma ventana de PowerShell para ejecutar pruebas concretas directamente mediante 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"

Revise la documentación de pqtest-overview para obtener más información sobre la ejecución de pruebas con PQTest.exe.

Ejecución de pruebas de plegado de consultas

Las pruebas bajo cualesquiera pruebas estándar y de integridad se pueden ejecutar para validar el plegado de consultas. Ejecute la prueba la primera vez para generar un archivo de salida de diagnóstico en la carpeta \testframework\tests\<Extension Name>\Diagnostics\. Las ejecuciones posteriores validan la salida generada con el archivo de salida de diagnóstico.

Ejecución de pruebas de plegado de consultas con la utilidad RunPQSDKTestSuites.ps1

Valide el plegado de consultas para las pruebas de integridad y estándar de la siguiente manera:

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

Nota:

Como alternativa, especifique ValidateQueryFolding=True en el archivo \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.json.

Ejecución de pruebas de plegado de consultas mediante 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"

Conclusión

En esta sección se describen los pasos para configurar las consultas de parámetros y los archivos de configuración, que después son necesarios para validar el conector de extensión mediante la ejecución del conjunto de pruebas de integridad y estandarizadas.

Aprenderá a agregar más pruebas en la siguiente sección. También obtendrá información sobre los distintos comandos y opciones disponibles en el marco de pruebas y varias opciones personalizables para sus necesidades de pruebas.

Pasos siguientes

Marco de pruebas del SDK de Power Query, parte 6: adición de pruebas y comprensión de varias opciones