Création de tests dans AXE
TAEF prend en charge la création de tests exécutés avec le moteur d’exécution d’évaluation (AXE).
La prise en charge d’AXE dans TAEF permet à TAEF d’exécuter des manifestes d’évaluation AXE. Il est principalement conçu pour encapsuler les tests hérités, écrits en tant qu’EXE de ligne de commande, dans des manifestes d’évaluation AXE basés sur XML. De cette façon, ces tests hérités deviennent exécutables avec TAEF sans avoir à réécrire les tests en tests natifs, managés ou de script TAEF.
Disposition des tests AXE
Bien que les fichiers de test TAEF standard puissent contenir plusieurs classes de test et tests, les tests TAEF AXE (tests définis par un manifeste d’évaluation AXE) ne peuvent contenir qu’un seul test, car le manifeste encapsule un seul exécutable. Ainsi, lors de l’affichage des tests dans un fichier de test TAEF AXE, vous verrez toujours que le fichier de test (qui est le manifeste d’évaluation AXE que vous affichez) contient une seule classe de test et un seul test :
te Examples\AXE.Basic.Examples.manifest /list
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64
D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.Basic.Examples.manifest
Basic
Basic::Basic
Les tests AXE ne prennent pas non plus en charge les méthodes d’installation ou de nettoyage.
Création de tests AXE
Pour les tests AXE, TAEF utilise le format de fichier manifeste d’évaluation AXE.
Fichier de test AXE minimal
Le schéma du manifeste d’évaluation AXE est conçu pour prendre en charge des descriptions très riches d’une évaluation complexe pour des scénarios sophistiqués. Toutefois, les manifestes peuvent également être très simples, car il y a très peu de nœuds obligatoires. L’exemple suivant montre un manifeste minimal qui inclut toutes les balises obligatoires.
1<?xml version="1.0" encoding="utf-8"?>
2<AxeAssessmentManifest xmlns="http://www.microsoft.com/axe/assessment/manifest">
3 <VersionedId>
4 <Guid>{ABCBFDE6-D731-4030-9049-E7CAAB6A6EEE}</Guid>
5 <Version>
6 <Major>1</Major>
7 <Minor>0</Minor>
8 <Build>0</Build>
9 <Revision>0</Revision>
10 </Version>
11 </VersionedId>
12 <MinimumAxeVersionRequired>
13 <Version>
14 <Major>1</Major>
15 <Minor>0</Minor>
16 <Build>1</Build>
17 <Revision>0</Revision>
18 </Version>
19 </MinimumAxeVersionRequired>
20 <Description>
21 <ProgrammaticName>Basic</ProgrammaticName>
22 <DisplayName>Basic Examples</DisplayName>
23 <ToolTip>Sample Basic Examples Assessment Tooltip</ToolTip>
24 </Description>
25 <Meta>
26 <ExitValueMeaning> <ZeroIsSuccess/> </ExitValueMeaning>
27 </Meta>
28 <Execution>
29 <CreateProcess>
30 <ApplicationName>AssessmentSample.exe</ApplicationName>
31 </CreateProcess>
32 </Execution>
33</AxeAssessmentManifest>
Le fichier d’évaluation de test AXE est un fichier XML. Elle commence donc par un en-tête XML ordinaire (ligne 1).
La ligne 2 identifie le fichier XML en tant que manifeste AXE.
Les lignes 3 à 10 donnent au test une identité et une version qui peuvent être utilisées pour identifier le test de manière unique.
Les lignes 12 à 19 spécifient la version minimale d’AXE nécessaire pour interpréter ce manifeste et exécuter le test.
Les lignes 20 à 24 donnent au test un nom lisible et une brève description d’info-bulle. Notez que lorsque vous affichez les propriétés de test, le nom de votre classe de test et le nom de votre test correspondent à la valeur de l’élément ProgrammaticName :
D:\enddev2.binaries.amd64chk\WexTest\CuE\TestExecution>te Examples\AXE.Basic.Examples.manifest /list
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64
D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.Basic.Examples.manifest
Basic
Basic::Basic
Le nom lisible par l’utilisateur est attribué à la propriété DisplayName . Cette affectation est due à l’architecture et à la conception internes de TAEF.
Te Examples\AXE.Basic.Examples.manifest /listproperties
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64
D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.Basic.Examples.manifest
Property[TaefTestType] = AxeAssessment
Basic
Basic::Basic
Property[DisplayName] = Basic Examples
Property[ProgrammaticName] = Basic
Property[RunAs] = Elevated
Property[ToolTip] = Sample Basic Examples Assessment Tooltip
Cette évaluation encapsule un exe de test simple et existant nommé AssessmentSample.exe. AssessmentSample.exe utilise la convention commune pour retourner un code de sortie de processus de zéro pour la réussite et une valeur non nulle en cas d’échec.
Les lignes 25 à 27 indiquent à AXE et TAEF qu’une valeur de sortie égale à zéro signifie que le test a réussi et que toute autre valeur signifie échec.
Enfin, les lignes 28 à 32 indiquent à AXE d’utiliser l’API Win32 CreateProcess() pour exécuter AssessmentSample.exe.
Utilisation de métadonnées dans le fichier de test AXE
Comme pour tout autre test TAEF, vous pouvez également appliquer des métadonnées à un test TAEF AXE. Prenons l’exemple ci-dessous.
1<?xml version="1.0" encoding="utf-8"?>
2<AxeAssessmentManifest xmlns="http://www.microsoft.com/axe/assessment/manifest">
3 <VersionedId>
4 <Guid>{F310F3F6-F786-4118-8A18-BC020C7D2521}</Guid>
5 <Version>
6 <Major>1</Major>
7 <Minor>0</Minor>
8 <Build>0</Build>
9 <Revision>0</Revision>
10 </Version>
11 </VersionedId>
12 <MinimumAxeVersionRequired>
13 <Version>
14 <Major>1</Major>
15 <Minor>0</Minor>
16 <Build>1</Build>
17 <Revision>0</Revision>
18 </Version>
19 </MinimumAxeVersionRequired>
20 <Description>
21 <ProgrammaticName>CustomMetadataExamples</ProgrammaticName>
22 <DisplayName>Custom Metadata Examples</DisplayName>
23 <ToolTip>Sample Custom Metadata Examples Assessment Tooltip</ToolTip>
24 </Description>
25 <Properties>
26 <Owner>Someone</Owner>
27 <Priority>1</Priority>
28 <Parallel>false</Parallel>
29 </Properties>
30 <Meta>
31 <ExitValueMeaning> <ZeroIsSuccess/> </ExitValueMeaning>
32 </Meta>
33 <Execution>
34 <CreateProcess>
35 <ApplicationName>AssessmentSample.exe</ApplicationName>
36 </CreateProcess>
37 </Execution>
38</AxeAssessmentManifest>
Les lignes 25 à 29 montrent comment les métadonnées standard et personnalisées TAEF peuvent être appliquées à un test AXE. Sous le nœud XML AxeAssessmentManifest se trouve un nœud Properties . Les balises XML de niveau unique sous le nœud Propriétés sont reconnues en tant que métadonnées (propriétés). Toutes les balises XML de niveau unique sous Propriétés sont interprétées comme des noms de propriétés et leurs valeurs de texte sont interprétées comme des valeurs de propriété. Dans l’exemple ci-dessus, Owner est interprété comme un nom de propriété et Someone comme valeur de propriété. Les balises XML sans texte dans ces éléments sont interprétées comme des éléments dont la valeur est égale à la chaîne vide (par exemple, <SimpleTagWithNoText/>). Les balises XML à plusieurs niveaux sous Propriétés sont ignorées (par exemple, une balise à plusieurs niveaux comme
<VerifyOSVersion>
<Major>6</Major>
<Minor>0</Minor>
<Build>0</Build>
</VerifyOSVersion>
sera ignoré). Comme pour tout autre test TAEF, vous utilisez l’option /listProperties pour afficher les métadonnées TAEF :
te Examples\AXE.CustomMetadata.Examples.manifest /listProperties
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64
D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.CustomMetadata.Examples.manifest
Property[TaefTestType] = AxeAssessment
CustomMetadataExamples
CustomMetadataExamples::CustomMetadataExamples
Property[DisplayName] = Custom Metadata Examples
Property[Owner] = Someone
Property[Parallel] = false
Property[Priority] = 1
Property[ProgrammaticName] = CustomMetadataExamples
Property[RunAs] = Elevated
Property[ToolTip] = Sample Custom Metadata Examples Assessment Tooltip
Limitations de la prise en charge des métadonnées des tests AXE
Notes
Toutes les métadonnées de test standard TAEF ne peuvent pas être utilisées avec les tests TAEF AXE.
- Toutes les métadonnées destinées à modifier l’environnement dans lequel le processus s’exécute, comme ActivationContext et ThreadingModel, ne fonctionnent pas avec les tests AXE. AXE n’utilise pas le processus taef pour exécuter les tests, mais crée un processus dans lequel il exécute le programme exécutable spécifié par le fichier de test AXE (manifeste d’évaluation AXE). Pour la même raison, les tests TAEF pilotés par les données (propriété DataSource ) ne fonctionnent pas non plus avec les tests AXE TAEF.
- De même, étant donné que les fichiers de test TAEF AXE ne peuvent encapsuler qu’un seul test, les métadonnées TAEF qui modifient le comportement d’un test par rapport à d’autres tests, comme ExecutionGroup, ne fonctionnent pas non plus.
- En raison de l’architecture AXE, AXE ne peut exécuter que des processus élevés. Par conséquent, comme vous l’avez vu dans les propriétés des tests TAEF AXE ci-dessus, chaque test TAEF AXE a Property[RunAs] = Elevated appliqué.
Fichier de test AXE avec des paramètres d’exécution
Les tests TAEF AXE prennent également en charge les paramètres d’exécution. Pour utiliser les paramètres d’exécution de TAEF avec les tests AXE, les noms de paramètres qui doivent être transmis au programme exécutable doivent être définis dans le fichier de test AXE.
Il est hors de portée de ce document de décrire toutes les fonctionnalités possibles des paramètres de manifeste AXE dans tous les détails. Pour plus d’informations, consultez la documentation sur l’évaluation AXE. Ce document couvre uniquement les applications de paramètres les plus courantes et utiles.
L’exemple suivant montre un manifeste d’évaluation AXE plus complexe.
1<?xml version="1.0" encoding="utf-8"?>
2<AxeAssessmentManifest xmlns="http://www.microsoft.com/axe/assessment/manifest">
3 <VersionedId>
4 <Guid>{B63B2FFF-EDEB-41FB-92EA-529CE4A46D20}</Guid>
5 <Version>
6 <Major>1</Major>
7 <Minor>0</Minor>
8 <Build>0</Build>
9 <Revision>0</Revision>
10 </Version>
11 </VersionedId>
12 <MinimumAxeVersionRequired>
13 <Version>
14 <Major>1</Major>
15 <Minor>0</Minor>
16 <Build>1</Build>
17 <Revision>0</Revision>
18 </Version>
19 </MinimumAxeVersionRequired>
20 <Description>
21 <ProgrammaticName>ExplicitRuntimeParameters</ProgrammaticName>
22 <DisplayName>Explicit Runtime Parameters</DisplayName>
23 <ToolTip>Sample Explicit Runtime Parameters Assessment Tooltip</ToolTip>
24 </Description>
25 <ParameterDefinitions>
26 <ParameterDefinition>
27 <Description>
28 <ProgrammaticName>SimpleParameter</ProgrammaticName>
29 <DisplayName>Simple parameter</DisplayName>
30 <ToolTip>The is an example of a simple parameter.</ToolTip>
31 </Description>
32 <Type>
33 <String></String>
34 </Type>
35 <CommandLineFormat>{0}</CommandLineFormat>
36 </ParameterDefinition>
37 <ParameterDefinition>
38 <Description>
39 <ProgrammaticName>RequiredParameterWithoutDefaultValue</ProgrammaticName>
40 <DisplayName>Required parameter without a default value.</DisplayName>
41 <ToolTip>The is an example of a required parameter Without a default value.</ToolTip>
42 </Description>
43 <Required>True</Required>
44 <Type>
45 <Int></Int>
46 </Type>
47 <CommandLineFormat>{0}</CommandLineFormat>
48 </ParameterDefinition>
49 <ParameterDefinition>
50 <Description>
51 <ProgrammaticName>RequiredParameterWithDefaultValue</ProgrammaticName>
52 <DisplayName>Required parameter with a default value</DisplayName>
53 <ToolTip>The is an example of a required parameter With a default value.</ToolTip>
54 </Description>
55 <Required></Required>
56 <DefaultValue>"%AssessmentResultsPath%"</DefaultValue>
57 <Type>
58 <String></String>
59 </Type>
60 <CommandLineFormat>/RequiredParameterWithDefaultValue={0}</CommandLineFormat>
61 </ParameterDefinition>
62 </ParameterDefinitions>
63 <Meta>
64 <ExitValueMeaning> <ZeroIsSuccess/> </ExitValueMeaning>
65 </Meta>
66 <Execution>
67 <CreateProcess>
68 <ApplicationName>AssessmentSample.exe</ApplicationName>
69 </CreateProcess>
70 </Execution>
71</AxeAssessmentManifest>
Les lignes 25 à 62 sont des définitions de paramètres qui décrivent les paramètres utilisés par TAEF et AXE pour passer des données dans l’exécutable d’évaluation.
La définition de paramètre la plus simple se trouve sur les lignes 26 à 36. Il se compose d’une section Description obligatoire qui est exactement la même que la section Description pour le manifeste, comme expliqué ci-dessus. Ensuite, vous voyez une balise Type qui définit le type de données du paramètre. (Consultez la documentation d’évaluation AXE pour tous les types de données pris en charge.)
La section facultative CommandLineFormat décrit la mise en forme d’un paramètre d’évaluation pour la ligne de commande d’évaluation. Ce nœud XML doit contenir une chaîne non vide qui est une chaîne de mise en forme .NET valide. La valeur du paramètre d’évaluation est le seul objet passé au formateur. Cela signifie que la chaîne de mise en forme doit contenir un seul élément de mise en forme composite avec index zéro. Voici quelques exemples : -input {0}, /affinity:0x{0,X} ou -InputFile="{0} ».
Le paramètre suivant est défini sur les lignes 37 à 48 et est un paramètre obligatoire. La seule différence dans sa définition par rapport au paramètre précédent est une balise facultative Obligatoire . Cette balise indique qu’AXE s’attend à ce que l’utilisateur réussisse ce paramètre pendant l’exécution du test AXE. Si ce paramètre est omis, la valeur par défaut du type de données du paramètre est utilisée (par exemple, zéro pour INT, chaîne vide pour String, etc.).
Enfin, le dernier paramètre de l’exemple spécifie une balise DefaultValue facultative, qui décrit la valeur par défaut du paramètre. Si ce nœud est vide, la valeur par défaut du type de données du paramètre est utilisée comme valeur par défaut. L’exemple ci-dessus utilise « %AssessmentResultsPath% », qui est une variable d’environnement définie par AXE lorsque l’évaluation commence à s’exécuter. Là encore, consultez la documentation d’évaluation AXE pour toutes les variables d’environnement AXE prises en charge.
Les paramètres sont passés à l’exécutable dans l’ordre inverse de leur définition : le paramètre défini dans le dernier fichier est d’abord passé au fichier exécutable.
Vous exécutez les tests de paramètres du runtime TAEF AXE comme tout autre test TAEF qui utilise des paramètres d’exécution (à l’aide des options de ligne de commande /p ) :
te AXE.ExplicitRuntimeParameters.Examples.manifest /p:SimpleParameter=Test1 /p:RequiredParameterWithoutDefaultValue=10
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64
ExplicitRuntimeParameters::ExplicitRuntimeParameters
AssessmentSample.exe is simple application for AXE assessment demo.
It just echoes the arguments passed to it to the console.
Parameters passed from the command line:
Argument[0]=AssessmentSample.exe
Argument[1]=10
Argument[2]=/RequiredParameterWithDefaultValue=C:\Results\JobResults_DEVRH_2011-0129_0250-12.394\0
Argument[3]=Test1
FileName: C:\Results\JobResults_DEVRH_2011-0129_0250-12.394\JobResults_DEVRH_2011-0129_0250-12.394.xml
Saved output file to: D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\WexLogFileOutput\
000001_~ExplicitRuntimeParameters_JobResults_DEVRH_2011-0129_0250-12.394.xml
EndGroup: ExplicitRuntimeParameters::ExplicitRuntimeParameters [Passed]
Exécution croisée des machines de test AXE
Pour un scénario d’exécution inter-ordinateurs, TAEF tente de déterminer les dépendances de test qui doivent être déployées avec le test pour une exécution de test réussie. Dans le cas d’un fichier de test AXE, TAEF copie tous les fichiers qui se trouvent dans le même dossier avec un test TAEF AXE vers un ordinateur distant pour exécution.
L’exécution sur plusieurs ordinateurs de tests AXE sur une plateforme Arm n’est actuellement pas prise en charge.
Dépendances de prise en charge DE TAEF AXE
AXE n’est pas fourni avec Windows. Pour pouvoir exécuter des tests AXE, vous devez copier axecore.dll et Microsoft.Assessment.dll vers TAEF ou votre répertoire de test TAEF AXE.