TAEF를 사용하여 DataDrivenTests를 실행하는 팁과 요령으로 시작하기 전에 데이터 기반 테스트를 작성하는 방법과 TAEF 를 사용하여 테스트를 실행하는 방법을 알고 있어야 합니다. 선택 쿼리가 TAEF에서 작동하는 방식에 대한 메모리를 새로 고치는 것이 유용할 수 있습니다.
이 섹션에서는 테이블 기반 데이터 기반 테스트 실행에 대해 구체적으로 설명하지만 PICT 기반 및 WMI 기반 데이터 기반 테스트에도 동일한 기본 원칙이 적용됩니다.
데이터 기반 테스트를 포함하여 모든 테스트를 실행하려는 경우 일반적으로 TAEF를 사용하여 실행하는 방법과 차이가 없습니다. TAEF를 사용하여 CPP\DataDrivenExample 및 CSharp\DataDrivenExample 을 함께 실행하는 예제를 살펴보겠습니다. 기본적으로 TAEF는 외부 프로세스에서 테스트를 실행합니다. inproc로 실행하려면 "/inproc" 스위치를 사용합니다.
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll
메타데이터를 지정하는 xml 파일 및 헤더 파일을 살펴보세요. 다음과 같이 우선 순위=1이 있는 데이터 드라이버 테스트만 실행합니다.
TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"
메타데이터는 xml 파일의 행 수준에서 지정된 것이 TestMethod 작성 단계에서 지정된 메타데이터를 재정의한다는 점을 유의하십시오.
TAEF를 사용하여 데이터 기반 테스트 실행의 기능을 좀 더 살펴보겠습니다. FirstTable() 함수의 세 번째 행만 재현하려고 합니다. 2(인덱스는 0에서 시작)인 행의 인덱스를 사용하여 이 작업을 수행할 수 있습니다.
TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"
이제 선택 기준에 데이터 기반 테스트에 특별히 사용할 수 있는 새 네임스페이스 "@Data:"이 있습니다. 위의 테스트를 실행하면 데이터 기반 테스트의 경우 테스트 이름에 추가되는 일반적인 '#index' 대신 테스트 이름에 '#Black'이 추가됩니다. 이 행에 지정된 특수 '이름' 메타데이터입니다. 자세한 내용은 행 수준에서 메타데이터 지정 을 참조하세요. 이 특수 이름에도 불구하고 이름을 사용하여 선택할 수 있습니다. 인덱스 선택은 실제로 큰 데이터 집합에 대한 행 범위를 선택하는 데 큰 길을 갈 수 있습니다. 예를 들어 행이 100개(최대 인덱스 = 99)인 데이터 기반 테스트가 있고 인덱스가 10보다 크고 20보다 작은 행만 실행하려는 경우 다음과 같이 쉽게 지정할 수 있습니다.
TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"
종종 특정 데이터 값을 기준으로 재현하고자 할 때 인덱스를 찾아야 하는 번거로움을 피하고 싶을 것입니다. 이 경우 "@Data:" 네임스페이스를 다시 사용할 수 있습니다. 이제 단위 테스트의 네이티브 예제( 데이터 기반 테스트 작성 참조)에서 "테마"가 "AeroBasic"인 경우에만 실행하려고 합니다.
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"
콘솔에 다음과 같이 표시됩니다.
StartGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Process: 3588; Thread: 4584]
I am in second table.
Theme supplied as AeroBasic
EndGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Passed]
Summary: Total=1, Passed=1, Failed=0, Blocked=0, Not Run=0, Skipped=0
데이터 기반 테스트의 /listproperties를 활용하여 데이터 기반 테스트에 대한 데이터 집합 및 메타데이터(테스트 메서드 수준 및 행 수준에서 지정된 메타데이터 조합)를 확인할 수도 있습니다. 그렇게
TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties
는 다양한 수준에서 사용 가능하고 지정된 메타데이터 및 데이터 값과 함께 모든 메서드(데이터 드라이버 및 기타)를 나열합니다.
행 수준에서 메타데이터 재정의, 배열 매개 변수 형식 지정 및 간단한 데이터 기반 예제(예: 더 많은 인사이트를 제공하는 연습)를 살펴보세요.