Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
TaEF (Test Authoring and Execution Framework) biedt een mechanisme om bepaalde tests selectief uit te voeren of weg te laten op basis van de metagegevensgegevens die u opgeeft. In de volgende sectie worden verschillende voorbeelden besproken van het gebruik van dit selectiemechanisme met TE.exe.
U kunt TE.exe uitvoeren vanuit een opdrachtpromptvenster.
TE <test_binaries> [/select:<selection criteria>]
In deze sectie wordt de optie TE.exe /select:selection criteria beschreven. Zie TE.exe Opdrachtopties voor meer informatie over TE.exe.
De selectiecriteria worden globaal toegepast op alle binaire testbestanden die zijn vermeld bij de opdrachtprompt. Laten we eens kijken naar twee test_binaries: voorbeelden\CPP.SelectionCriteria1.Example.dll en voorbeelden\CPP.SelectionCriteria2.Example.dll . In het volgende voorbeeld ziet u de eigenschappen of metagegevens die zijn opgegeven op de verschillende niveaus in deze test_binaries. U kunt dit ook verkrijgen door de optie /listproperties op te geven in het opdrachtpromptvenster.
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
Met andere woorden, met behulp van /listproperties op elk van deze test_binaries afzonderlijk, krijgt u:
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
En:
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
Het is belangrijk te weten dat op dit moment test_binaries samen met hun volledige pad worden vermeld en klassenamen worden vermeld als 'Naamruimte>::<ClassName>' in het geval van systeemeigen test_binaries en Naamruimte><.<<ClassName>' in het geval van beheerde test_binaries. Op dezelfde manier worden testmethodenamen vermeld als "<Naamruimte>::<ClassName>::<TestMethodName>" voor systeemeigen test_binaries en "<Naamruimte>.<ClassName>.<TestMethodName>" voor beheerde test_binaries.
Met andere woorden, de volledig gekwalificeerde naam van een naam of functie is wat wordt opgeslagen in te. Dit is om de mogelijkheid te bieden om een methode uniek te onderscheiden. Als twee klassen bijvoorbeeld dezelfde methodenaam hebben, helpt de klassekwalificatie om de methode die u interesseert, uniek te selecteren. Daarom helpen selectiecriteria om alleen de tests uit te voeren die voldoen aan uw criteria in de opgegeven test_binaries.
In het bovenstaande voorbeeld, zoals in Voorbeelden\Cpp.SelectionCriteria1.Example.dll, kunt u 'Methode111' kiezen volgens een van de volgende selectiecriteria:
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'"
U kunt ervoor kiezen om alle tests uit te voeren die zijn gemarkeerd met 'Prioriteit' kleiner dan 2 door het volgende uit te voeren:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority < 2"
Hiermee worden alleen voorbeelden uitgevoerd\CPP.SelectionCriteria1.Example.dll - 'class11::method111' in ons voorbeeld.
Als u alle tests in class11 wilt uitvoeren, kunt u de gekwalificeerde eigenschap 'Naam' samen met wildcards gebruiken om deze als volgt te selecteren:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll
/select:"@Name='*::class11::*'"
Wanneer u selectiecriteria gebruikt, zijn er enkele dingen handig om rekening mee te houden:
- "and", "not" en "or" zijn gereserveerde woorden en zijn niet hoofdlettergevoelig.
- Namen en waarden van metagegevenseigenschappen zijn niet hoofdlettergevoelig, bijvoorbeeld 'C2' in het voorbeeld, komen overeen met 'c2' en 'C2'. Als u dus één functie hebt met metagegevens 'eigenschap' en een andere met 'Eigenschap' en de selectiecriteria zoekt naar 'EIGENSCHAP', komt deze overeen met beide.
- De tekenreekswaarde in de selectiequery moet tussen enkele aanhalingstekens worden geplaatst. Binnen een tekenreekswaarde in een selectievraag is '?' een enkel jokerteken en '*' staat voor 0 of meer jokertekens.
- Houd tijdens het gebruik van aanhalingstekens bij de opdrachtprompt rekening met slimme aanhalingstekens wanneer u een selectiequery kopieert. Als u een selectiequery kopieert vanuit een e-mail van Outlook, hebt u mogelijk per ongeluk slimme aanhalingstekens en kan TAEF deze mogelijk niet parseren. Typ de aanhalingstekens uit.
Laten we enkele snelle voorbeelden bekijken van samengestelde selectiecriteria en wat ze zouden uitvoeren.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=2"
Wordt uitgevoerd:
- Voorbeelden\CPP.SelectionCriteria2.Example.dll - klasse21::method211
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=3"
Wordt uitgevoerd:
- Voorbeelden\CPP.SelectionCriteria1.Example.dll - klasse11::method112
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='U3' oR @Priority=1"
Wordt uitgevoerd:
- Voorbeelden\CPP.SelectionCriteria1.Example.dll - klasse11::method111
- Voorbeelden\CPP.SelectionCriteria2.Example.dll - klasse22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*)"
Alle tests worden uitgevoerd waarbij de waarde BackwardsCompatibility niet is opgegeven. (Zie de volgende items.)
- Voorbeelden\CPP.SelectionCriteria1.Example.dll - klasse11::method111, klasse12::method121
- Voorbeelden\CPP.SelectionCriteria2.Example.dll - klasse22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C*'"
voert alle tests uit waarbij de waarde eigenaar begint met 'C' (niet hoofdlettergevoelig). De vorige opdracht voert dus alle tests uit in Voorbeelden\CPP.SelectionCriteria1.Example.dll and all tests in Examples\CPP.SelectionCriteria2.Example.dll onder klasse21 (dat wil gezegd methode211)
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*) OR (@Owner='C*' AND @BackwardsCompatibility='*XP*')"
voert alle tests uit waarbij de achterwaartsecompatibiliteit niet is opgegeven of, waarbij de naam van de eigenaar begint met 'C' en achterwaartsecompatibiliteitswaarde XP bevat. LET OP hoe het haakje '(" en ") wordt gebruikt om de prioriteitsvolgorde op te geven.
In het voorbeeld zou dit selectief worden uitgevoerd:
- Voorbeelden\CPP.SelectionCriteria1.Example.dll - klasse11::method111, klasse12::method121,
- Voorbeelden\CPP.SelectionCriteria2.Example.dll - klasse21::method211, klasse22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Owner='???'"
voert alleen tests uit die een eigenschapswaarde hebben die slechts 3 tekens bevat.
In ons voorbeeld komt dit overeen met 'C' en wordt alleen uitgevoerd:
- Voorbeelden\CPP.SelectionCriteria1.Example.dll - klasse12::method121
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority>=1"
Opmerking
Dit is een goed voorbeeld van hoe u '>=', '<=', '>' en '<' kunt gebruiken waarbij eigenschapswaarden floatvalues zijn.
In ons voorbeeld worden alle methoden uitgevoerd, met uitzondering van voorbeelden\CPP.SelectionCriteria2.Example.dll - klasse22::method221, waarbij geen proriteit is opgegeven. Met andere woorden, dit zou worden uitgevoerd:
- Voorbeelden\CPP.SelectionCriteria1.Example.dll - klasse11::method111, klasse11::method112, klasse12::method121
- Voorbeelden\CPP.SelectionCriteria2.Example.dll - klasse21::method211.
Houd er rekening mee dat u '/select' kunt gebruiken in combinatie met andere opdrachtopties, zoals '/list' '/listproperties', enzovoort.
Slimme aanhalingstekens
U kunt slimme aanhalingstekens in uw selectiecriteria tegenkomen als u selectiecriteria van Outlook of een Word-document naar uw opdrachtprompt kopieert. Meer informatie over wat slimme aanhalingstekens zijn op Slimme aanhalingstekens: De verborgen plaag van tekst die is bedoeld voor computerverbruik
Er is geen eenvoudige manier om slimme aanhalingstekens te voorkomen. De beste methode is om alle dubbele aanhalingstekens en enkele aanhalingstekens in de selectiecriteria te verwijderen nadat u deze naar de opdrachtprompt hebt gekopieerd en de aanhalingstekens van de query opnieuw te typen.
Er is een instelling voor opties om ze uit te schakelen bij het maken van berichten in Outlook. Typ 'slimme aanhalingstekens' in het Help-vak van Outlook om dit te vinden.
Snelle selectie op basis van naam
Met TAEF kunt u snel selecteren op basis van de naam bij de opdrachtprompt met behulp van de opdrachtregelparameter '/name':
/name:<test name with wildcards>
is gelijk aan:
/select:@Name='<test name with wildcards>'
Met andere woorden, u kunt nu een selectiequery opgeven op basis van de naam, zoals:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Name='*::class11::*'"
sneller door /name als volgt te gebruiken:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /name=*::class11::*
Houd er rekening mee dat als zowel /name als /select worden opgegeven bij de opdrachtprompt, /name wordt genegeerd en /select voorrang krijgt.