데이터 기반 테스트 실행

TAEF를 사용하여 DataDrivenTests를 실행하는 팁과 요령으로 시작하기 전에 데이터 기반 테스트를 작성하는 방법과 TAEF를 사용하여 테스트를 실행하는 방법을 알고 있어야 합니다. 선택 쿼리가 TAEF에서 작동하는 방식에 대한 메모리를 새로 고치는 것이 유용할 수 있습니다.

이 섹션에서는 테이블 기반 데이터 기반 테스트 실행에 대해 구체적으로 설명하지만 PICT 기반 및 WMI 기반 데이터 기반 테스트에도 동일한 기본 원칙이 적용됩니다.

데이터 기반 테스트를 포함하여 모든 테스트를 실행하려는 경우 일반적으로 TAEF를 사용하여 실행하는 방법과 차이가 없습니다. TAEF를 사용하여 CPP\DataDrivenExampleCSharp\DataDrivenExample을 함께 실행하는 예제를 살펴보겠습니다. 기본적으로 TAEF는 out-of-proc 테스트를 실행합니다. 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

는 다양한 수준에서 사용 가능하고 지정된 메타데이터 및 데이터 값과 함께 모든 메서드(데이터 드라이버 및 기타)를 나열합니다.

행 수준에서 메타데이터 재정의, 배열 매개 변수 형식 지정 및 간단한 데이터 기반 예제(예: 더 많은 인사이트를 제공하는 연습)를 살펴보세요.