다음을 통해 공유


AXE에서 테스트 작성

TAEF는 AXE(평가 실행 엔진)로 실행되는 작성 테스트를 지원합니다.

TAEF의 AXE 지원을 통해 TAEF는 AXE 평가 매니페스트를 실행할 수 있습니다. 주로 명령줄 EXE로 작성된 레거시 테스트를 XML 기반 AXE 평가 매니페스트로 래핑하도록 설계되었습니다. 이러한 방식으로 이러한 레거시 테스트는 테스트를 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줄 은 테스트를 고유하게 식별하는 데 사용할 수 있는 ID 및 버전을 테스트에 제공합니다.

줄 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

이 평가는 AssessmentSample.exe라는 단순하고 기존 테스트 EXE를 래핑합니다. AssessmentSample.exe 공통 규칙을 사용하여 성공에 대해 0의 프로세스 종료 코드를 반환하고 실패에 대해 0이 아닌 값을 반환합니다.

줄 25 - 27 은 AXE 및 TAEF에 종료 값이 0이면 테스트가 성공했음을 의미하고 다른 값은 실패를 의미합니다.

마지막으로 , 줄 28 - 32 는 WIN32 API CreateProcess()를 사용하여 AssessmentSample.exe실행하도록 AXE에 지시합니다.

AXE 테스트 파일에서 메타데이터 사용

다른 TAEF 테스트와 마찬가지로 TAEF AXE 테스트에도 메타데이터를 적용할 수 있습니다. 아래에 표시된 예제를 고려합니다.

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 테스트에 적용하는 방법을 보여 줍니다. AxeAssessmentManifest XML 노드 아래에 속성 노드가 있습니다. 속성 노드 아래의 단일 수준 XML 태그는 메타데이터(속성)로 인식됩니다. 속성 아래의 모든 단일 수준 XML 태그는 속성 이름으로 해석되고 해당 텍스트 값은 속성 값으로 해석됩니다. 위의 예제에서 Owner 는 속성 이름으로 해석되고 Someone 는 속성 값으로 해석됩니다. 이러한 요소에 텍스트가 없는 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 표준 테스트 메타데이터를 TAEF AXE 테스트와 함께 사용할 수 있는 것은 아닙니다.

  • ActivationContextThreadingModel과 같이 프로세스가 실행되는 환경을 수정하기 위한 모든 메타데이터는 AXE 테스트와 함께 작동하지 않습니다. AXE는 TAEF의 프로세스를 사용하여 테스트를 실행하지 않지만 AXE 테스트 파일(AXE 평가 매니페스트)에서 지정한 실행 프로그램을 실행하는 새 프로세스를 만듭니다. 같은 이유로 데이터 기반 TAEF 테스트(DataSource 속성)는 AXE TAEF 테스트에도 작동하지 않습니다.
  • 마찬가지로 TAEF AXE 테스트 파일은 단일 테스트만 캡슐화할 수 있으므로 ExecutionGroup과 같은 다른 테스트와 관련하여 테스트 동작을 수정하는 TAEF 메타데이터도 작동하지 않습니다.
  • AXE 아키텍처로 인해 AXE는 관리자 권한 프로세스만 실행할 수 있습니다. 따라서 위의 TAEF AXE 테스트 속성에서 보았듯이 모든 TAEF AXE 테스트에는 Property[RunAs] = Elevated가 적용됩니다 .

런타임 매개 변수를 사용하여 AXE 테스트 파일

TAEF AXE 테스트는 런타임 매개 변수도 지원합니다. AXE 테스트와 함께 TAEF의 런타임 매개 변수를 사용하려면 실행 프로그램에 전달될 매개 변수 이름을 AXE 테스트 파일에 정의해야 합니다.

모든 세부 정보에서 가능한 모든 AXE 매니페스트 매개 변수 기능을 설명하는 것은 이 문서의 scope. 해당 정보는 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줄에 있습니다. 위에서 설명한 매니페스트의 설명 섹션과 정확히 동일한 필수 설명 섹션으로 구성됩니다. 그런 다음 매개 변수 데이터 형식을 정의하는 Type 태그가 표시됩니다. (지원되는 모든 데이터 형식은 AXE 평가 설명서를 참조하세요.)

선택적 CommandLineFormat 섹션에서는 평가 명령줄에 대한 평가 매개 변수의 형식을 지정하는 방법을 설명합니다. 이 XML 노드에는 유효한 .NET 서식 문자열인 비어 있지 않은 문자열이 포함되어야 합니다. 평가 매개 변수 값은 포맷터에 전달되는 유일한 개체입니다. 즉, 서식 문자열에는 인덱스 0이 있는 복합 서식 항목이 하나만 포함되어야 합니다. 몇 가지 예는 -input {0}, /affinity:0x{0,X}, 또는 -InputFile=""{0}입니다.

다음 매개 변수는 37-48줄 에 정의되며 필수 매개 변수입니다. 이전 매개 변수와 정의의 유일한 차이점은 선택적 필수 태그입니다. 이 태그는 AXE 테스트 실행 중에 사용자가 이 매개 변수를 전달할 것으로 예상한다는 것을 나타냅니다. 이 매개 변수를 생략하면 매개 변수의 데이터 형식에 대한 기본값이 사용됩니다(예: INT의 경우 0, String의 경우 빈 문자열 등).

마지막으로 예제의 마지막 매개 변수는 매개 변수의 기본값을 설명하는 선택적 DefaultValue 태그를 지정합니다. 이 노드가 비어 있으면 매개 변수의 데이터 형식에 대한 기본값이 기본값으로 사용됩니다. 위의 예제에서는 평가 실행을 시작할 때 AXE에서 설정하는 환경 변수인 "%AssessmentResultsPath%"를 사용합니다. 다시 지원되는 모든 AXE 환경 변수에 대한 AXE 평가 설명서를 참조하세요.

매개 변수는 정의의 역순으로 실행 파일에 전달됩니다. 마지막 파일에 정의된 매개 변수는 먼저 실행 파일에 전달됩니다.

/p 명령줄 옵션을 사용하여 런타임 매개 변수를 사용하는 다른 TAEF 테스트로 TAEF AXE 런타임 매개 변수 테스트를 실행합니다.

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 테스트가 있는 동일한 폴더에 있는 모든 파일을 원격 머신에 복사합니다.

ARM 플랫폼에 대한 AXE 테스트의 컴퓨터 간 실행은 현재 지원되지 않습니다.

TAEF AXE 지원 종속성

AXE는 Windows와 함께 제공되지 않습니다. AXE 테스트를 실행하려면 axecore.dll 복사하고 Microsoft.Assessment.dll TAEF 또는 TAEF AXE 테스트 디렉터리에 복사해야 합니다.