Partager via


Exécution des tests pilotés par les données

Assurez-vous de savoir comment rédiger des tests pilotés par les données et comment exécuter des tests avec TAEF avant de consulter les trucs et astuces pour l’exécution des tests pilotés par les données avec TAEF. Il pourrait être également utile de vous rafraîchir la mémoire concernant le fonctionnement de la requête de sélection avec TAEF.

Cette section parle spécifiquement de l’exécution des tests pilotés par les données basés sur des tables, mais les mêmes principes de base s’appliquent également aux tests pilotés par les données basés sur PICT et WMI.

Si vous voulez juste exécuter tous vos tests, dont les tests pilotés par les données, il n’y a pas de différence par rapport à la façon dont vous le feriez normalement avec TAEF. Prenons un exemple d’exécution conjointe de CPP\DataDrivenExample et CSharp\DataDrivenExample en utilisant TAEF. Rappelez-vous que par défaut, TAEF exécute les tests hors processus. Si vous voulez les exécuter en mode inprocess, utilisez l’option « /inproc ».

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll

Examinez les fichiers XML et les fichiers d’en-tête qui spécifient les métadonnées. Exécutez uniquement les tests pilotés par les données qui ont une priorité = 1 comme suit :

TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"

Gardez à l’esprit que les métadonnées spécifiées au niveau de la ligne dans le fichier XML remplacent les métadonnées spécifiées au niveau de la rédaction de la méthode de test.

Regardons d’un peu plus près la puissance de l’exécution des tests pilotés par les données avec TAEF. Supposons que vous cherchez à reproduire uniquement la 3ème ligne dans la fonction FirstTable(). Vous pouvez faire cela en utilisant l’index de la ligne, qui sera 2 (l’index commence à 0) :

TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"

Notez que le critère de sélection a maintenant un nouveau namespace « @Data: » qui peut être spécifiquement utilisé pour les tests pilotés par les données. Lorsque vous exécutez le test ci-dessus, vous remarquerez qu’au lieu de l’habituel « #index » qui est ajouté aux noms de test en cas de tests pilotés par les données, « #Black » est ici ajouté au nom du test - c’est la métadonnée spéciale « Name » spécifiée pour cette ligne. Veuillez consulter la rubrique Spécification des métadonnées au niveau de la ligne pour plus de détails. Malgré ce nom spécial, vous pouvez toujours sélectionner en utilisant le nom. La sélection de l’index peut aller loin pour sélectionner une plage de lignes pour un ensemble de données vraiment large. Par exemple (dans le sens hypothétique, pas dans l’exemple) si vous avez des tests pilotés par les données avec 100 lignes (index max = 99) et que vous voulez uniquement exécuter les lignes avec un index supérieur à 10 et inférieur à 20, vous pouvez maintenant spécifier cela facilement comme suit :

TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"

Souvent, vous allez chercher à reproduire en fonction d’une valeur de données particulière et ne pas avoir à chercher son index. Dans ce cas, vous pouvez utiliser à nouveau l’espace de nom « @Data: ». Maintenant, disons que dans l’exemple natif de tests unitaires (voir la rédaction de tests pilotés par les données), vous voulez exécuter uniquement les cas lorsque « Thème » est « AeroBasic ».

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"

Cela s’affichera sur la console comme ceci :

StartGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Process: 3588; Thread: 4584]
I am in second table.
Theme supplied as AeroBasic
EndGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Passed]
Summary: Total=1, Passed=1, Failed=0, Blocked=0, Not Run=0, Skipped=0

Vous pouvez également tirer parti de /listproperties pour les tests pilotés par les données pour voir les ensembles de données et les métadonnées (combinaison de métadonnées spécifiées au niveau de la méthode de test et au niveau de la ligne) pour le test piloté par les données. Ainsi,

TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties

affichera toutes les méthodes (pilotées par les données et autres) ainsi que les métadonnées et les valeurs de données disponibles et spécifiées à divers niveaux.

Examinez la spécification des métadonnées au niveau de la ligne, à la spécification des types de paramètres de tableau et à l’exemple simple de test piloté par les données pour des exemples détaillés fournissant plus d’informations.