Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
- Accédez au dossier \testframework\tests\ConnectorConfigs sous le dossier de référentiel cloné.
- Effectuez une copie du dossier \generic et renommez-le avec le nom de l’extension.
- Ouvrez chaque fichier dans le dossier \ParameterQueries et mettez à jour la requête M comme instructions fournies dans ces fichiers.
- 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.