선택 사항
TAEF(테스트 작성 및 실행 프레임워크)는 사용자가 제공하는 메타데이터 정보에 따라 특정 테스트를 선택적으로 실행하거나 생략하는 메커니즘을 제공합니다. 다음 섹션에서는 이 선택 메커니즘을 TE.exe 사용하는 방법에 대한 다양한 예제를 살펴봅니다.
명령 프롬프트 창에서 TE.exe 실행할 수 있습니다.
TE <test_binaries> [/select:<selection criteria>]
이 섹션에서는 TE.exe /select:selection 조건 옵션에 대해 설명합니다. TE.exe 대한 자세한 내용은 TE.exe 명령 옵션을 참조 하세요.
선택 조건은 명령 프롬프트에서 멘션 모든 테스트 이진 파일에 전역적으로 적용됩니다. 예제\CPP라는 두 가지 test_binaries 살펴보겠습니다. SelectionCriteria1.Example.dll 및 Examples\CPP. SelectionCriteria2.Example.dll . 다음 예제에서는 이러한 test_binaries 다양한 수준에서 지정된 속성 또는 메타데이터를 보여줍니다. 명령 프롬프트 창에서 /listproperties 옵션을 지정하여 이를 가져올 수도 있습니다.
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
즉, 이러한 test_binaries 각각에 /listproperties를 개별적으로 사용하면 다음을 얻을 수 있습니다.
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
그리고:
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
이 시점에서 test_binaries 전체 경로와 함께 나열되고 네이티브 test_binaries 및 "<네임스페이스의 경우 클래스 이름이 "<Namespace>::<ClassName>"으로 나열된다는 점에 유의해야> 합니다.<관리되는 test_binaries 경우 ClassName>"입니다. 마찬가지로 테스트 메서드 이름은 네이티브 test_binaries 및 "네임스페이스의 경우 "<Namespace>::<ClassName>::<TestMethodName>"으로 나열됩니다>.<<ClassName>.<관리되는 test_binaries 경우 TestMethodName>"입니다.
즉, 이름 또는 함수의 정규화된 이름은 te에 저장됩니다. 이렇게 하면 메서드를 고유하게 구분할 수 있습니다. 예를 들어 두 클래스의 메서드 이름이 같으면 클래스 한정을 사용하면 관심 있는 메서드를 고유하게 선택할 수 있습니다. 이를 위해 선택 조건은 지정된 test_binaries 조건과 일치하는 테스트만 실행하는 데 도움이 됩니다.
위의 예제에서 Examples\Cpp.SelectionCriteria1.Example.dll 다음 선택 조건 중 하나를 사용하여 "Method111"을 선택할 수 있습니다.
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'"
다음을 실행하여 2보다 작은 "우선 순위"로 표시된 모든 테스트를 실행하도록 선택할 수 있습니다.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority < 2"
Examples\CPP만 실행됩니다. SelectionCriteria1.Example.dll - 예제의 "class11::method111"
class11에서 모든 테스트를 실행하려면 정규화된 "Name" 속성과 와일드카드 일치를 사용하여 다음과 같이 선택할 수 있습니다.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll
/select:"@Name='*::class11::*'"
선택 조건을 사용하는 경우 다음과 같은 몇 가지 유용한 사항을 염두에 두어야 합니다.
- "and", "not", "or"는 예약된 단어이며 대/소문자를 구분하지 않습니다.
- 메타데이터 속성 이름과 값은 대/소문자를 구분하지 않습니다(예: 예제의 "C2")는 "c2" 및 "C2"와 일치합니다. 따라서 메타데이터 "property"가 있는 함수와 "Property"가 있는 함수가 있고 선택 조건이 "PROPERTY"를 찾는 경우 두 함수가 모두 일치합니다.
- 선택 쿼리 문자열의 문자열 값은 작은따옴표에 포함되어야 합니다. 선택 쿼리 "?"의 문자열 값 내에서 단일 wild카드 문자이고 "*"는 0개 이상의 와일드카드 문자입니다.
- 명령 프롬프트 에서 따옴표를 사용하는 동안 선택 쿼리를 복사할 때는 스마트 따옴표를 염두에 두어야 합니다. Outlook 전자 메일에서 선택 쿼리를 복사하는 경우 실수로 스마트 따옴표가 있을 수 있으며 TAEF에서 구문 분석하지 못할 수 있습니다. 대신 따옴표를 입력합니다.
복합 선택 조건 및 실행 항목에 대한 몇 가지 빠른 예제를 살펴보겠습니다.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=2"
다음을 실행합니다.
- Examples\CPP. SelectionCriteria2.Example.dll - class21::method211
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=3"
다음을 실행합니다.
- Examples\CPP. SelectionCriteria1.Example.dll - class11::method112
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='U3' oR @Priority=1"
다음을 실행합니다.
- Examples\CPP. SelectionCriteria1.Example.dll - class11::method111
- Examples\CPP. SelectionCriteria2.Example.dll - class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*)"
BackwardsCompatibility 값이 지정되지 않은 모든 테스트를 실행합니다. (다음 항목을 참조하세요.)
- Examples\CPP. SelectionCriteria1.Example.dll - class11::method111, class12::method121
- Examples\CPP. SelectionCriteria2.Example.dll - class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C*'"
는 소유자 값이 "C"(대/소문자를 구분하지 않는 경우)로 시작하는 모든 테스트를 실행합니다. 따라서 이전 명령은 Examples\CPP의 모든 테스트를 실행합니다. examples\CPP의 SelectionCriteria1.Example.dll 및 모든 테스트입니다. class21의 SelectionCriteria2.Example.dll(즉, method211)
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*) OR (@Owner='C*' AND @BackwardsCompatibility='*XP*')"
는 BackwardsCompatibility가 지정되지 않았거나 소유자 이름이 "C"로 시작하고 backwardsCompatibilty 값에 XP가 포함된 모든 테스트를 실행합니다. 괄호 "(" 및 ")"를 사용하여 우선 순위 순서를 지정하는 방법을 확인합니다.
이 예제에서는 다음을 선택적으로 실행합니다.
- Examples\CPP. SelectionCriteria1.Example.dll - class11::method111, class12::method121,
- Examples\CPP. SelectionCriteria2.Example.dll - class21::method211, class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Owner='???'"
는 3자만 포함하는 속성 소유자 값이 있는 테스트만 실행합니다.
이 예제에서는 "C"와 일치하고 다음만 실행합니다.
- Examples\CPP. SelectionCriteria1.Example.dll - class12::method121
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority>=1"
참고 항목
이는 속성 값이 floatvalues인 ">=", "<=", ">" 및 "<"를 사용하는 방법의 좋은 예입니다.
이 예제에서는 Examples\CPP를 제외한 모든 메서드를 실행합니다. SelectionCriteria2.Example.dll - prority가 지정되지 않은 class22::method221입니다. 즉, 다음이 실행됩니다.
- Examples\CPP. SelectionCriteria1.Example.dll - class11::method111, class11::method112, class12::method121
- Examples\CPP. SelectionCriteria2.Example.dll - class21::method211.
"/list" "/listproperties" 등과 같은 다른 명령 옵션과 함께 "/select"를 사용할 수 있습니다.
스마트 따옴표
Outlook 또는 Word 문서에서 선택 조건을 다시 명령 프롬프트로 복사하는 경우 선택 조건에 스마트 따옴표가 표시될 수 있습니다. 스마트 따옴표에 어떤 스마트 따옴표에 대 한 자세한 정보를 찾을 수 있습니다.: 컴퓨터 사용에 대 한 의미 텍스트의 숨겨진된 재앙
스마트 따옴표를 방지하는 쉬운 방법은 없습니다. 가장 좋은 방법은 명령 프롬프트에 복사한 후 선택 조건의 "큰따옴표 및 작은따옴표"를 모두 삭제하고 쿼리의 따옴표 부분을 다시 입력하는 것입니다.
Outlook에서 메시지를 만들 때 해제하는 옵션 설정이 있습니다. Outlook 도움말 상자에 "스마트 따옴표"를 입력하여 찾을 수 있습니다.
빠른 이름 기반 선택
TAEF를 사용하면 명령 프롬프트에서 '/name' 명령줄 매개 변수를 사용하여 이름에 따라 빠르게 선택할 수 있습니다.
/name:<test name with wildcards>
다음과 동일합니다.
/select:@Name='<test name with wildcards>'
즉, 이제 다음과 같은 이름에 따라 선택 쿼리를 제공할 수 있습니다.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Name='*::class11::*'"
다음과 같이 /name을 사용하여 더 빠르게 다음을 수행합니다.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /name=*::class11::*
명령 프롬프트에서 /name과 /select가 모두 제공되면 /name이 무시되고 /select가 우선합니다.