다음을 통해 공유


선택 사항

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가 우선합니다.