Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
TAEF поддерживает разработку тестов, выполняемых с помощью подсистемы выполнения оценки (AXE).
Поддержка AXE в TAEF позволяет TAEF выполнять манифесты оценки AXE. Он в основном предназначен для упаковки устаревших тестов, написанных как EXEs командной строки, в манифесты оценки AXE на основе XML. Таким образом, эти устаревшие тесты становятся исполняемыми с помощью TAEF, без необходимости переписывать их на оригинальные, управляемые или скриптовые тесты TAEF.
Макет тестов AXE
Хотя обычные файлы тестов TAEF могут содержать несколько классов и тестов, тесты TAEF AXE (тесты, определенные манифестом оценки AXE), могут содержать только один тест, так как манифест упаковывает один исполняемый файл. Таким образом, при просмотре тестов в тестовом файле TAEF AXE всегда будет видно, что тестовый файл (который является манифестом оценки AXE, который вы просматриваете), содержит один тестовый класс и один тест:
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
Тесты AXE также не поддерживают никакие методы установки или очистки.
Создание тестов AXE
Для тестов AXE TAEF использует формат файла манифеста оценки AXE.
Минимальный тестовый файл AXE
Схема манифеста оценки AXE предназначена для поддержки очень богатых описаний сложной оценки для сложных сценариев. Однако манифесты также могут быть очень простыми, так как есть очень мало обязательных узлов. В следующем примере показан минимальный манифест, содержащий все обязательные теги.
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>
Файл оценки тестирования AXE — это XML-файл. Таким образом, он начинается с обычного xml-заголовка (строка 1).
Строка 2 определяет XML-файл как манифест AXE.
Строки 3 – 10 дают тесту идентификатор и версию, которые могут быть использованы для уникальной идентификации теста.
Строка 12 – 19 указывает минимальную версию AXE, необходимую для интерпретации этого манифеста и запуска теста.
Строки 20 – 24 дают тесту удобочитаемое имя и краткое описание подсказки. Обратите внимание, что при просмотре свойств теста имя класса теста и имя теста будут соответствовать значению элемента 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
Имя, доступное для чтения, присваивается свойству DisplayName . Это назначение обусловлено внутренней архитектурой и проектированием 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
Эта оценка упаковывает простой и существующий тест EXE с именем AssessmentSample.exe. AssessmentSample.exe использует общее соглашение для возврата кода завершения процесса нулевого значения для успешного выполнения и ненулевого значения для сбоя.
Строки 25 – 27 сообщают AXE и TAEF, что значение выхода равно нулю означает, что тест был успешно выполнен, и что любое другое значение означает сбой.
Наконец, строки 28 – 32 указывают AXE использовать API Win32 CreateProcess() для выполнения AssessmentSample.exe.
Использование метаданных в тестовом файле AXE
Как и в случае с любым другим тестом TAEF, можно также применить метаданные к тесту AXE TAEF. Рассмотрим приведенный ниже пример.
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>
Строки 25 – 29 демонстрируют, как стандарт TAEF и настраиваемые метаданные могут применяться к тесту AXE. Под узлом XML AxeAssessmentManifest находится узел Properties. Xml-теги одного уровня под узлом свойств распознаются как метаданные (свойства). Все XML-теги одного уровня в разделе "Свойства" интерпретируются как имена свойств, а их текстовые значения интерпретируются как значения свойств. В приведенном выше примере владелец интерпретируется как имя свойства и кто-то в качестве значения свойства. XML-теги без текста в этих элементах интерпретируются как элементы, значение которых равно пустой строке (например, <SimpleTagWithNoText/>). Многоуровневые XML-теги в разделе "Свойства" игнорируются (например, многоуровневый тег, например
<VerifyOSVersion>
<Major>6</Major>
<Minor>0</Minor>
<Build>0</Build>
</VerifyOSVersion>
будет игнорироваться). Аналогично любым другим тестам TAEF, используйте параметр /listProperties для отображения метаданных 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
Ограничения тестирования поддержки метаданных AXE
Примечание.
Не все метаданные стандартного теста TAEF можно использовать с тестами AXE TAEF.
- Все метаданные, направленные на изменение среды, в которой выполняется процесс, например ActivationContext и ThreadingModel, не будут работать с тестами AXE. AXE не использует процесс TAEF для выполнения тестов, но создает новый процесс, в котором выполняется исполняемая программа, указанная файлом тестирования AXE (манифест оценки AXE). По той же причине тестирование TAEF на основе данных, свойство DataSource, также не работает с тестами AXE TAEF.
- Аналогичным образом, так как тестовые файлы TAEF AXE могут инкапсулировать только один тест, метаданные TAEF, которые изменяют поведение теста в отношении других тестов, таких как ExecutionGroup, также не будут работать.
- Из-за архитектуры AXE, AXE может выполнять только повышенные процессы. Таким образом, как вы видели из приведенных выше свойств тестов TAEF AXE, каждый тест TAEF AXE имеет свойство[RunAs] = повышенный уровень применения.
Файл тестирования AXE с параметрами среды выполнения
Тесты TAEF AXE также поддерживают параметры среды выполнения. Чтобы использовать параметры среды выполнения TAEF с тестами AXE, имена параметров, передаваемые в исполняемую программу, необходимо определить в тестовом файле AXE.
Он выходит за рамки этого документа, чтобы описать все возможные функции параметров манифеста AXE во всех деталях. Дополнительные сведения см. в документации по оценке AXE. В этом документе рассматриваются только наиболее распространенные и полезные приложения параметров.
В следующем примере показан более сложный манифест оценки AXE.
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>
Строки 25 – 62 — это определения параметров, описывающие параметры, используемые TAEF и AXE для передачи данных в исполняемый файл оценки.
Самое простое определение параметра находится в строках 26 – 36. Он состоит из обязательного раздела описания , который точно совпадает с разделом описания манифеста, который описан выше. Затем вы увидите тег типа , определяющий тип данных параметра. (Обратитесь к документации по оценке AXE для всех поддерживаемых типов данных.)
Необязательный раздел CommandLineFormat описывает форматирование параметра оценки для командной строки оценки. Этот XML-узел должен содержать непустую строку, которая является допустимой строкой форматирования .NET. Значение параметра оценки будет единственным объектом, передаваемым в средство форматирования. Это означает, что строка форматирования должна содержать один и только один составной элемент форматирования с нулевым индексом. Ниже приведены некоторые примеры: -input {0}, /affinity:0x{0,X}, или -InputFile="{0}".
Следующий параметр определен в строках 37 – 48 и является обязательным параметром. Единственное различие в определении от предыдущего параметра — необязательный тег "Обязательный". Этот тег указывает, что AXE ожидает от пользователя передачи этого параметра во время выполнения теста AXE. Если этот параметр опущен, будет использоваться значение по умолчанию для типа данных параметра (например, ноль для INT, пустая строка для String и т. д.).
Наконец, последний параметр в примере задает необязательный тег DefaultValue , описывающий значение по умолчанию параметра. Если этот узел пуст, значение по умолчанию для типа данных параметра будет использоваться в качестве значения по умолчанию. В приведенном выше примере используется "%AssessmentResultsPath%", которая является переменной среды, заданной AXE при запуске оценки. Опять же, ознакомьтесь с документацией по оценке AXE для всех поддерживаемых переменных среды AXE.
Параметры передаются исполняемому файлу в обратном порядке их определения — параметр, определенный в последнем файле, передается в исполняемый файл первым.
Вы выполняете тесты параметров среды выполнения TAEF AXE как любой другой тест TAEF, использующий параметры среды выполнения (с помощью параметров командной строки /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]
Выполнение тестов AXE на различных компьютерах
В сценарии выполнения на нескольких машинах TAEF пытается определить зависимости тестов, которые необходимо развернуть вместе с тестом для успешного выполнения. В случае тестового файла AXE TAEF копирует все файлы, которые находятся в одной папке с тестом TAEF AXE, на удаленный компьютер для выполнения.
Перекрестное выполнение тестов AXE на платформе Arm в настоящее время не поддерживается.
Зависимости поддержки TAEF AXE
AXE не входит в состав Windows. Чтобы выполнить тесты AXE, необходимо скопировать axecore.dll и Microsoft.Assessment.dll в каталог тестов TAEF или TAEF AXE.