Power Query framework de test sdk partie 5b - Test de votre connecteur d’extension avec PowerShell

Note

Cet article traite des tests à l’aide de l’utilitaire PowerShell. Pour les tests à l’aide de l’Explorateur de tests Visual Studio Code, consultez Power Query framework de test SDK partie 5a - Test de votre connecteur d’extension avec Visual Studio Code.

Cette référence en plusieurs parties couvre l’installation et l’exécution d’une suite standard de tests pour les développeurs de connecteurs Power Query. Cette référence est destinée à être effectuée de manière séquentielle pour vous assurer que votre environnement est configuré pour tester votre connecteur personnalisé.

Jusqu'à présent, vous avez effectué les étapes suivantes :

  • Configurer l’environnement
  • Chargement des données de test
  • Téléchargement de la suite de tests
  • Découverte de différents formats de fichiers et de leurs fonctionnalités

Vous êtes enfin prêt à commencer à vérifier votre connecteur d’extension avec la suite de tests.

Dans cette section, vous allez :

  • Découvrez comment mettre à jour les requêtes de paramètres et les fichiers de paramètres
  • Définir le chemin d’accès pour l’infrastructure de test, l’extension du connecteur et le répertoire de paramètres de test
  • Définir les informations d’identification de l’extension
  • Valider les données de test en exécutant des tests d’intégrité
  • Valider votre connecteur en exécutant l’ensemble standardisé de tests
  • Valider le pliage des requêtes et générer du texte de commande dans les fichiers de diagnostic

Définir les chemins d’accès PQTest.exe et d’extension dans le fichier RunPQSDKTestSuitesSettings.json

Accédez à \testframework\tests and open the RunPQSDKTestSuitesSettings.jssur le fichier dans le dossier de référentiel cloné. Définissez ensuite les chemins d’accès pour PQTest.exe et l’extension dans le fichier config :

  • PQTestExePath : remplacez par le chemin d’accès à PQTest.ext. Par exemple, C :\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft. PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, où <Username> est le nom de votre dossier de profil utilisateur, x.x.x est la version actuelle de l’extension Power Query SDK et x.xxx.x est la version actuelle des outils sdk Power Query.
  • ExtensionPath : remplacez par le chemin d’accès au fichier mez d’extension. Par exemple, C :\dev\<ConnectorName>\<ConnectorName.mez, où <ConnectorName>> est le nom de votre connecteur.

Note

Vous trouverez plus d’informations sur toutes les variables que vous pouvez définir dans le fichier RunPQSDKTestSuitesSettings.json dans le \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsfourni sur le modèle.

Mettre à jour les requêtes de paramètres et le fichier de paramètres avec les détails spécifiques à votre connecteur d’extension de source de données

Exécution du script PowerShell .\RunPQSDKTestSuites.ps1 crée les requêtes de paramètres et les paramètres de test en créant un dossier avec <le nom> de l’extension, ainsi que les dossiers Settings et ParameterQueries sous celui-ci comme suit :

  • testframework\tests\ConnectorConfigs\Nom> d’extension<\ParameterQueries
  • testframework\tests\ConnectorConfigs\Nom> d’extension<\Paramètres

Les exemples suivants montrent les chemins d’accès d’un connecteur nommé Contoso :

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

Note

Mettez à jour la requête M dans les fichiers de requête de paramètre générés pour vous connecter à votre source de données et récupérer les tables NycTaxiGreen & TaxiZoneLookup précédemment chargées.

Vous pouvez également créer manuellement les fichiers de requête de paramètres et les fichiers de paramètres pour votre source de données en effectuant les étapes ci-dessous :

  1. Accédez au dossier \testframework\tests\ConnectorConfigs sous le dossier de référentiel cloné.
  2. Effectuez une copie du dossier \generic et renommez-le avec le nom de l’extension.
  3. Ouvrez chaque fichier dans le dossier \ParameterQueries et mettez à jour la requête M comme instructions fournies dans ces fichiers.
  4. Ouvrez chaque fichier dans le dossier \Settings et mettez à jour les chemins corrects du fichier de requête de paramètre.

Définir les informations d’identification de votre connecteur d’extension

Vérifiez que les informations d’identification sont configurées pour votre connecteur en suivant les instructions de la commande set-credential .

Vous pouvez également générer un modèle d’informations d’identification au format JSON pour votre connecteur à l’aide de la commande credential-template qui peut être transmise à la commande set-credential . Pour plus d’informations sur l’utilisation permettant de générer un modèle d’informations d’identification, reportez-vous à la section 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

Prenez la sortie de la commande précédente et remplacez les valeurs d’espace réservé par des informations d’identification correctes et enregistrez-la sous forme de fichier JSON (par exemple, contoso_cred.json).

Ensuite, stockez les informations d’identification à l’aide de cette commande set-credential , qui sont utilisées par la commande compare pour exécuter les tests. À l’aide de la fenêtre PowerShell existante, définissez les informations d’identification de votre extension à l’aide du fichier d’informations d’identification JSON généré à l’étape précédente. Reportez-vous à la section set-credential sur l’utilisation pour configurer les informations d’identification de votre connecteur.

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

Valider que les données de test sont configurées correctement en exécutant les tests d’intégrité

Pour vous assurer que les modifications fonctionnent et que la configuration des données est correctement effectuée, exécutez les tests d’intégrité à l’aide de l’utilitaire RunPQSDKTestSuites.ps1 présent dans le répertoire \testframework\tests\TestSuites comme suit :

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

Exécuter les tests standard et de santé

Exécuter à l’aide de l’utilitaire RunPQSDKTestSuites.ps1

Pour exécuter l’ensemble complet des tests sanity et standard ou un ensemble de tests définis par le fichier de paramètres, exécutez la commande suivante pour exécuter les tests :

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

Pour en savoir plus sur l’utilitaire RunPQSDKTestSuites.ps1, exécutez la commande Get-Help comme suit :

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

Exécuter à l’aide de PQTest.exe

Pour exécuter des tests particuliers directement à l’aide de PQTest.exe, utilisez la commande suivante dans la même fenêtre 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"

Consultez la documentation dans pqtest-overview pour plus d’informations sur l’exécution de tests avec PQTest.exe.

Exécution de tests de pliage de requêtes

Les tests sous n’importe quelle intégrité et tests standard peuvent être exécutés pour valider le pliage des requêtes. Exécutez le test la première fois pour générer un fichier de sortie de diagnostic sous le dossier \testframework\tests\<Extension Name>\Diagnostics\. Les exécutions suivantes valident la sortie générée avec le fichier de sortie des diagnostics.

Exécuter des tests de pliage des requêtes à l’aide de l’utilitaire de RunPQSDKTestSuites.ps1

Validez le pliage des requêtes pour les tests Sanity &Standard comme suit :

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

Note

Vous pouvez également spécifier ValidateQueryFolding=True dans le \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jssur le fichier.

Exécuter des tests de pliage de requêtes à l’aide de 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"

Conclusion

Cette section a abordé les étapes de configuration des requêtes de paramètres et des fichiers de paramètres, qui sont ensuite nécessaires pour valider votre connecteur d’extension en exécutant l’ensemble de tests normalisé et de sanité.

Dans la section suivante, vous allez apprendre à ajouter d’autres tests. Vous découvrez également les différentes commandes et options disponibles dans l’infrastructure de test, ainsi que différents paramètres personnalisables pour vos besoins de test.

Étapes suivantes

Power Query framework de test sdk partie 6 - Ajout de vos tests et compréhension de différentes options