Sdílet prostřednictvím


Provádění testů řízených daty

Než začnete s tipy a triky spouštění testů DataDrivenTests pomocí taEF , nezapomeňte si uvědomit, jak vytvářet testy řízené daty a jak provádět testy pomocí taEF. Může být užitečné osvěžit si paměť ohledně toho, jak výběrové dotazy fungují s TAEF.

Tato část se konkrétně týká provádění testů založených na datech založených na tabulce, ale stejný základní princip platí i pro testy založené na pict a testy založené na datech založených na rozhraní WMI.

Pokud chcete jenom spustit všechny testy, včetně testů řízených daty, neexistuje žádný rozdíl od toho, jak byste je normálně spustili pomocí taEF. Pojďme se podívat na příklad spuštění CPP\DataDrivenExample a CSharp\DataDrivenExample společně pomocí TAEF. Mějte na paměti, že ve výchozím nastavení TAEF spouští testy mimo hlavní proces. Pokud je chcete spustit vproc, použijte přepínač /inproc.

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll

Podívejte se na soubory XML a hlavičkové soubory, které určují metadata. Spusťte pouze datově řízené testy, které mají prioritu = 1.

TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"

Mějte na paměti, že metadata zadaná na úrovni řádku v souboru XML přepisují metadata zadaná na úrovni vytváření testMethod.

Pojďme se podrobněji podívat na výkon provádění testů řízených daty pomocí TAEF. Řekněme, že chcete opakovat pouze třetí řádek ve funkci FirstTable(). Můžete to provést pomocí indexu řádku, který bude 2 (index začíná na 0):

TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"

Všimněte si, že kritérium výběru teď má nový obor názvů "@Data:", který lze použít speciálně pro testy řízené daty. Když spustíte výše uvedený test, všimněte si, že místo obvyklého "#index", který se připojí k testovacím názvům v případě testů řízených daty, máte k názvu testu připojena "#Black" – jedná se o speciální metadata "Name" zadaná pro tento řádek. Podrobnosti najdete v tématu Zadání metadat na úrovni řádku . Navzdory tomuto speciálnímu názvu můžete i nadále vybírat podle názvu. Výběr indexu může trvat dlouhou dobu, než vybere rozsah řádků pro opravdu velkou datovou sadu. Například, pokud máte testy založené na datech se 100 řádky (maximální index = 99) a chcete spouštět pouze řádky s indexem větším než 10 a menším než 20, můžete nyní toto snadno zadat takto:

TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"

Mnohokrát byste chtěli provést opakování na základě konkrétní hodnoty dat a nemuseli byste procházet obtížemi s nalezením jeho indexu. V takovém případě můžete znovu použít obor názvů "@Data:". Předpokládejme, že v nativním příkladu testů jednotek (viz Vytváření testů řízených daty) chcete spustit pouze tyto případy, kdy je téma "AeroBasic".

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"

Zobrazí se v konzole následujícím způsobem:

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

K zobrazení datových sad a metadat (kombinace metadat zadaných na úrovni testovací metody a řádku) pro test řízený daty můžete využít také /listproperties. Takže

TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties

zobrazí seznam všech metod (řízené daty a jinak) spolu s metadaty a datovými hodnotami dostupnými a zadanými na různých úrovních hierarchie.

Podívejte se na přepisování metadat na úrovni řádků, určení typů parametrů pole a jednoduchý příklad řízený daty, kde najdete příkladové postupy, které poskytují hlubší vhled.