Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Test Authoring and Execution Framework (TAEF) olyan mechanizmust biztosít, amely lehetővé teszi bizonyos tesztek szelektív futtatását vagy kihagyását a megadott metaadatok alapján. Az alábbi szakasz bemutat különböző példákat arra, hogyan lehet használni ezt a kijelölési mechanizmust a TE.exe-val.
A parancssori ablakban futtathat TE.exe.
TE <test_binaries> [/select:<selection criteria>]
Ez a szakasz a TE.exe /select:selection feltételt ismerteti. A TE.exeTE.exe parancsbeállítások című témakörben talál további információt.
A kiválasztási feltételek globálisan lesznek alkalmazva a parancssorban említett összes teszt bináris fájlra. Vegyünk figyelembe két teszt_binarist: Példák\CPP.SelectionCriteria1.Example.dll és Példák\CPP.SelectionCriteria2.Example.dll. Az alábbi példa a test_binaries különböző szintjein megadott tulajdonságokat vagy metaadatokat mutatja be. Ezt a parancssori ablakban a /listproperties beállítás megadásával is beszerezheti.
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
Más szóval, ha mindegyik ezek közül a test_binaries közül külön-külön használja a /listproperties parancsot, a következő eredményt kapja:
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
És:
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
Ezen a ponton fontos megjegyezni, hogy a test_binaries a teljes elérési útjukkal együtt vannak felsorolva, és az osztálynevek a natív test_binaries és a "<Névtér>" esetében "<Névtér>::<ClassName>" néven jelennek meg.<ClassName>" a felügyelt test_binaries esetén. Hasonlóképpen, a tesztmetódusok nevei a natív test_binaries esetén "<Namespace>::<ClassName>::<TestMethodName>" formátumban, míg a felügyelt test_binaries esetén "<Namespace>.<ClassName>.<TestMethodName>" formátumban jelennek meg.
Más szóval, bármely név vagy függvény teljes neve az, ami a te-ben el van mentve. Ez lehetővé teszi bármely módszer egyedi megkülönböztetésének lehetőségét. Ha például két osztály ugyanazzal a metódusnévvel rendelkezik, az osztályminősítés segít egyedileg kiválasztani a kívánt metódust. Ennek érdekében a kiválasztási feltételek segítségével csak az adott test_binaries megadott feltételeknek megfelelő teszteket futtathatja.
A fenti példában, mondjuk a\Cpp.SelectionCriteria1.Example.dllpéldákban, a "Method111" (Módszer111) lehetőséget választhatja az alábbi kiválasztási kritériumok bármelyikével:
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'"
Az összes olyan, "Priority" címkével és 2-nél kisebb értékkel ellátott tesztet futtathatja, az alábbi parancs futtatásával:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority < 2"
Ez csak az "Examples\CPP.SelectionCriteria1.Example.dll – class11::method111" példát futtatná a példánkban.
Ha az összes tesztet a 11. osztályban szeretné futtatni, a minősített "Name" tulajdonságot és a helyettesítő karaktereket is használhatja a következők szerint:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll
/select:"@Name='*::class11::*'"
A kiválasztási feltételek használatakor érdemes figyelembe venni néhány hasznos dolgot:
- "and", "not", és "or" fenntartott szavak, és érzéketlen a kis- és nagybetűkre."
- A metaadat-tulajdonságnevek és -értékek nem érzéketlenek, például a példában a "C2" egyezik a "c2" és a "C2" értékkel. Ezért ha az egyik függvény metaadata "tulajdonság", a másiké "Tulajdonság", és a kiválasztási feltétel a "TULAJDONSÁG" kifejezést keresi, akkor mindkettőhöz illeszkedne.
- A kiválasztási lekérdezési karakterlánc értékének egyetlen aposztrófban kell szerepelnie. A kiválasztási lekérdezés karakterlánc-értékében a "?" egyetlen helyettesítő karakter, míg a "*" 0 vagy több helyettesítő karakter.
- Miközben idézőjeleket használ a parancssorban, ügyeljen az intelligens idézőjelekre, amikor egy kijelölési lekérdezést másol át. Ha átmásol egy kijelölési lekérdezést egy Outlook-e-mailből, előfordulhat, hogy véletlenül intelligens idézőjelek vannak, és a TAEF nem tudja elemezni. Írja be inkább az idézőjeleket.
Tekintsünk át néhány gyors példát az összetett kiválasztási feltételekre és azok végrehajtására.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=2"
A következő parancs fut:
- Példák\CPP.SelectionCriteria2.Example.dll - class21::method211
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=3"
A következő parancs fut:
- Példák\CPP.SelectionCriteria1.Example.dll - class11::method112
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='U3' oR @Priority=1"
A következő parancs fut:
- Példák\CPP.SelectionCriteria1.Example.dll - class11::method111
- Példák\CPP.SelectionCriteria2.Example.dll - class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*)"
Minden olyan tesztet futtat, amelyben nincs megadva a Visszamenőleges kompatibilitás érték. (Lásd a következő elemeket.)
- Példák\CPP.SelectionCriteria1.Example.dll - class11::method111, class12::method121
- Példák\CPP.SelectionCriteria2.Example.dll - class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C*'"
Futtatni fog minden olyan tesztet, ahol a tulajdonos értéke "C"-vel kezdődik (a kis- és nagybetűk között nincs különbség). Így az előző parancs az összes tesztet futtatja a Példák\CPP.SelectionCriteria1.Example.dll and all tests in Examples\CPP.SelectionCriteria2.Example.dll-ban a class21-ben (azaz a method211-ben)
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*) OR (@Owner='C*' AND @BackwardsCompatibility='*XP*')"
minden olyan tesztet futtat, amelyben nincs megadva a visszamenőleges kompatibilitás, vagy ha a tulajdonos neve "C" betűvel kezdődik, és a visszamenőleges kompatibilitás érték XP-t tartalmaz. FIGYELJE meg, hogy a "(" és a "" zárójel hogyan adja meg az elsőbbségi sorrendet.
A példában ez szelektíven futna:
- Példák\CPP.SelectionCriteria1.Example.dll - class11::method111, class12::method121,
- Példák\CPP.SelectionCriteria2.Example.dll - class21::method211, class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Owner='???'"
csak olyan teszteket futtat, amelyek tulajdonságtulajdonosi értéke csak 3 karaktert tartalmaz.
A példánkban ez a "C" betűnek felelne meg, és csak a következőt futtatná:
- Példák\CPP.SelectionCriteria1.Example.dll - class12::method121
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority>=1"
Megjegyzés:
Ez jó példa arra, hogyan használhatja a ">=", "<=", ">" és "<" tulajdonságértékeket, ahol a tulajdonságértékek floatvaluesek.
Példánkban ez az összes metódust futtatná, kivéve az Examples\CPP.SelectionCriteria2.Example.dll - class22::method221 metódust, ahol nincs meghatározva prioritás. Más szóval ez a következő lenne:
- Példák\CPP.SelectionCriteria1.Example.dll - class11::method111, class11::method112, class12::method121
- Példák\CPP.SelectionCriteria2.Example.dll - class21::method211.
VEGYE FIGYELEMBE, hogy a "/select" parancsot más parancsokkal együtt is használhatja, például "/list" "/listproperties" stb.
Intelligens idézőjelek
A kiválasztási feltételekben intelligens idézőjelek jelenhetnek meg, ha egy kijelölési feltételt másol át az Outlookból vagy a Word-dokumentumból a parancssorba. További információt talál arról, hogy milyen intelligens idézőjelek találhatók az intelligens idézőjeleken: A számítógép-használatra szánt szöveg rejtett csapása
Nincs egyszerű módja az intelligens idézőjelek elkerülésének – a legjobb megközelítés az, ha törli az összes " dupla és ' egyszeres idézőjelet a kiválasztási feltételekben, miután átmásolta őket a parancssorba, majd újra beírja a lekérdezés idézőjeleit.
Az Outlookban van egy beállítási lehetőség az üzenetek létrehozásakor azok kikapcsolására. Ennek megkereséséhez írja be az "intelligens idézőjeleket" az Outlook súgómezőbe.
Rövid névalapú kijelölés
A TAEF lehetővé teszi a parancssorban a név alapján történő gyors kijelölést a "/name" parancssori paraméter használatával:
/name:<test name with wildcards>
egyenértékű a következővel:
/select:@Name='<test name with wildcards>'
Más szóval mostantól megadhat egy kijelölési lekérdezést a következő név alapján:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Name='*::class11::*'"
gyorsabban a /name használatával:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /name=*::class11::*
Vegye figyelembe, hogy ha a parancssorban a /name és a /select is meg van adva, akkor a /name parancs figyelmen kívül lesz hagyva, és a /select elsőbbséget élvez.