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.
L’infrastructure de création et d’exécution de tests (TAEF) fournit un mécanisme permettant d’exécuter ou d’omettre sélectivement certains tests en fonction des informations de métadonnées que vous fournissez. La section suivante décrit différents exemples d’utilisation de ce mécanisme de sélection avec TE.exe.
Vous pouvez exécuter TE.exe à partir d’une fenêtre d’invite de commandes.
TE <test_binaries> [/select:<selection criteria>]
Cette section décrit l’option TE.exe /select :selection criteria . Pour plus d’informations sur TE.exe, consultez TE.exe Options de commande.
Les critères de sélection sont appliqués globalement à tous les fichiers binaires de test mentionnés à l’invite de commandes. Prenons deux test_binaries : exemples\CPP.SelectionCriteria1.Example.dll et exemples\CPP.SelectionCriteria2.Example.dll . L’exemple suivant montre les propriétés ou les métadonnées spécifiées aux différents niveaux de ces test_binaries. Vous pouvez également l’obtenir en spécifiant l’option /listproperties dans la fenêtre d’invite de commandes.
CPP.SelectionCriteria1.Example.dll (Owner="C1", Priority=3)
class11 (Owner="C2")
method111(Priority=1)
method112 (BackwardsCompatibility="Windows 2000")
class12
method121
CPP.SelectionCriteria2.Example.dll (Owner="WEX")
class21 (Owner="C1", Priority=2, BackwardsCompatibility="Windows XP")
method211 (Owner="C2")
class22 (Owner="U3")
method221
En d’autres termes, en utilisant /listproperties sur chacun de ces test_binaries séparément, vous obtenez :
F:\fsd1.binaries.x86chk\WexTest\C1\TestExecution>te Examples\CPP.SelectionCriteria1.Example.dll /listproperties
Test Authoring and Execution Framework v2.2 Build 6.1.7689.0 (release.091218-1251) for x86
F:\fsd1.binaries.x86chk\WexTest\C1\TestExecution\Examples\CPP.SelectionCriteria1.Example.dll
Property[Owner] = C1
Property[Priority] = 3
WEX::TestExecution::Examples::Class11
Property[Owner] = C2
WEX::TestExecution::Examples::Class11::Method111
Property[Priority] = 1
WEX::TestExecution::Examples::Class11::Method112
Property[BackwardsCompatibility] = Windows2000
WEX::TestExecution::Examples::Class12
WEX::TestExecution::Examples::Class12::Method121
Et :
F:\fsd1.binaries.x86chk\WexTest\C1\TestExecution>te Examples\CPP.SelectionCriteria2.Example.dll /listproperties
Test Authoring and Execution Framework v2.2 Build 6.1.7689.0 (release.091218-1251) for x86
F:\fsd1.binaries.x86chk\WexTest\C1\TestExecution\Examples\CPP.SelectionCriteria2.Example.dll
Property[Owner] = WEX
WEX::TestExecution::Examples::Class21
Property[BackwardsCompatibility] = Windows XP
Property[Owner] = C1
Property[Priority] = 2
WEX::TestExecution::Examples::Class21::Method211
Property[Owner] = C2
WEX::TestExecution::Examples::Class22
Property[Owner] = U3
WEX::TestExecution::Examples::Class22::Method221
Il est important de noter à ce stade que les test_binaries sont répertoriés avec leur chemin d'accès complet, et que les noms de classes sont répertoriés comme "<Namespace::<ClassName>" dans le cas de test_binaries natif et "<Namespace>.<ClassName>" dans le cas d'un test_binaries managé. De même, les noms de méthode de test sont répertoriés sous la forme « Namespace ::<ClassName> ::<TestMethodName> » dans le cas de test_binaries natif et d'«< Espace de noms> ».<><ClassName>.<TestMethodName> » dans le cas d’une test_binaries managée.
En d’autres termes, le nom complet de n’importe quel nom ou fonction est ce qui est enregistré dans te. Cela permet de distinguer de manière unique n’importe quelle méthode. Par exemple, si deux classes ont le même nom de méthode, la qualification de classe permet de sélectionner de manière unique la méthode qui vous intéresse. Vers cette fin, les critères de sélection permettent d’exécuter uniquement les tests qui correspondent à vos critères dans la test_binaries donnée.
Dans l’exemple ci-dessus, supposons dans Exemples\Cpp.SelectionCriteria1.Example.dll, vous pouvez choisir « Méthode111 » selon l’un des critères de sélection suivants :
Te.exe Examples\CPP.SelectionCriteria1.Example.dll /select:"@Name='WEX::TestExecution::Examples::Class11::Method111'"
Te.exe Examples\CPP.SelectionCriteria1.Example.dll /select:"@Name='*Class11::Method111'"
Te.exe Examples\CPP.SelectionCriteria1.Example.dll /select:"@Name='*Method111'"
Vous pouvez choisir d’exécuter tous les tests marqués avec « Priorité » inférieur à 2 en exécutant :
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority < 2"
Cela n’exécuterait que des exemples\CPP.SelectionCriteria1.Example.dll - « class11 ::method111 » dans notre exemple.
Si vous souhaitez exécuter tous les tests sous la classe11, vous pouvez utiliser la propriété « Name » qualifiée, ainsi que la correspondance générique pour la choisir comme suit :
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll
/select:"@Name='*::class11::*'"
Lorsque vous utilisez des critères de sélection, il existe quelques éléments utiles à garder à l’esprit :
- « et », « non » et « ou » sont des mots réservés et insensibles à la casse.
- Les noms et valeurs des propriétés de métadonnées sont insensibles à la casse, par exemple « C2 » dans l’exemple, correspond à « c2 » et « C2 ». Par conséquent, si vous avez une fonction avec des métadonnées « property » et une autre avec « Property » et que les critères de sélection recherchent « PROPERTY », elles correspondent à ces deux.
- La valeur de chaîne dans la chaîne de requête de sélection doit être incluse entre guillemets simples. Dans une valeur de chaîne utilisée dans une requête de sélection, « ? » est un caractère générique unique et « * » représente zéro ou plusieurs caractères génériques.
- Lors de l’utilisation de guillemets à l’invite de commandes, gardez à l’esprit les guillemets intelligents lorsque vous copiez une requête de sélection. Si vous copiez une requête de sélection depuis un e-mail Outlook, il se peut que des guillemets courbes soient inclus par inadvertance, et TAEF pourrait ne pas être en mesure de l'analyser. Tapez les guillemets à la place.
Examinons quelques exemples rapides de critères de sélection composée et de ce qu’ils exécuteraient.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=2"
Exécutera :
- Exemples\CPP.SelectionCriteria2.Example.dll - class21 ::method211
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=3"
Exécutera :
- Exemples\CPP.SelectionCriteria1.Example.dll - class11 ::method112
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='U3' oR @Priority=1"
Exécutera :
- Exemples\CPP.SelectionCriteria1.Example.dll - class11 ::method111
- Exemples\CPP.SelectionCriteria2.Example.dll - class22 ::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*)"
Exécute tous les tests où la valeur BackwardsCompatibility n’a pas été spécifiée. (Consultez les éléments suivants.)
- Exemples\CPP.SelectionCriteria1.Example.dll - class11 ::method11, class12 ::method121
- Exemples\CPP.SelectionCriteria2.Example.dll - class22 :: method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C*'"
exécute tous les tests où la valeur propriétaire commence par « C » (insensible à la casse). Par conséquent, la commande précédente exécute tous les tests dans Exemples\CPP.SelectionCriteria1.Example.dll and all tests in Examples\CPP.SelectionCriteria2.Example.dll sous la classe21 (autrement dit, méthode211)
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*) OR (@Owner='C*' AND @BackwardsCompatibility='*XP*')"
exécute tous les tests où la valeur BackwardsCompatibility n’est pas spécifiée ou, où le nom du propriétaire commence par « C » et la valeur backwardsCompatibilty contient XP. NOTEZ comment les parenthèses « ( » et ») sont utilisées pour spécifier l’ordre de priorité.
Dans l’exemple, cette opération s’exécute de manière sélective :
- Exemples\CPP.SelectionCriteria1.Example.dll - class11 ::method11, class12 ::method121,
- Exemples\CPP.SelectionCriteria2.Example.dll - class21 ::method211, class22 ::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Owner='???'"
exécute uniquement des tests dont la valeur du propriétaire contient seulement 3 caractères.
Dans notre exemple, cela correspond à « C » et s’exécute uniquement :
- Exemple\CPP.SelectionCriteria1.Example.dll - class12::method121
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority>=1"
Remarque
Il s’agit d’un bon exemple de la façon dont vous pouvez utiliser « >= », « <= », « > » et « < » où les valeurs de propriété sont des valeurs flottantes.
Dans notre exemple, toutes les méthodes sont exécutées à l’exception des exemples\CPP.SelectionCriteria2.Example.dll - class22 ::method221, où aucune prorité n’a été spécifiée. En d’autres termes, cela s’exécuterait :
- Exemples\CPP.SelectionCriteria1.Example.dll - class11 ::method11, class11 ::method112, class12 ::method121
- Exemples\CPP.SelectionCriteria2.Example.dll - class21 ::method211.
Notez que vous pouvez utiliser « /select » conjointement avec d’autres options de commande telles que « /list » « /listproperties », etc.
Guillemets intelligents
Vous pouvez rencontrer des guillemets intelligents dans vos critères de sélection si vous copiez des critères de sélection à partir d'Outlook ou d'un document Word pour les coller dans votre invite de commandes. Vous pouvez trouver plus d’informations sur ce que sont les guillemets intelligents dans Guillemets intelligents : le fléau caché du texte destiné aux ordinateurs
Il n’existe aucun moyen simple d’éviter les guillemets intelligents : la meilleure approche consiste à supprimer toutes les guillemets doubles et les guillemets simples dans les critères de sélection une fois que vous l’avez copié dans l’invite de commandes et retyper la partie guillemets de la requête.
Il existe un paramètre d’options pour les désactiver lors de la création de messages dans Outlook. Tapez « guillemets intelligents » dans la zone d’aide Outlook pour trouver ceci.
Sélection rapide basée sur le nom
TAEF permet une sélection rapide basée sur le nom à l’invite de commandes à l’aide du paramètre de ligne de commande « /name » :
/name:<test name with wildcards>
équivaut à :
/select:@Name='<test name with wildcards>'
En d’autres termes, vous pouvez maintenant fournir une requête de sélection basée sur un nom tel que :
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Name='*::class11::*'"
plus rapidement en utilisant /name comme suit :
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /name=*::class11::*
Notez que si /name et /select sont fournis à l’invite de commandes, /name est ignoré et /select est prioritaire.