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.
In deze sectie worden enkele geavanceerde functies van gegevensgestuurde tests beschreven. Als u nog steeds de basisbeginselen beslaat, wilt u misschien beginnen met een eenvoudig gegevensgestuurd voorbeeld.
Voorbeelden waarnaar wordt verwezen:
MetadataOverridingDataDrivenExample
DataDrivenMetadataOverridingExample
Als u de voorbeelden die in deze sectie worden behandeld vergelijkt met de voorbeelden die worden behandeld op de pagina Simple Data Driven Example , zult u merken dat het enige verschil is dat metagegevens en eigenschappen op verschillende niveaus in de test zijn toegevoegd. Laten we eerst kijken hoe een basistest is gemaakt.
Bekijk in het systeemeigen voorbeeld regels 5 en 10 in het onderstaande codevoorbeeld:
1 class MetadataOverridingDataDrivenExample
2 {
3 BEGIN_TEST_CLASS(MetadataOverridingDataDrivenExample)
4 ...
5 TEST_CLASS_PROPERTY(L"Priority", L"2")
6 END_TEST_CLASS()
7
8 BEGIN_TEST_METHOD(DataDrivenTest)
9 ...
10 TEST_METHOD_PROPERTY(L"Owner", L"wex")
11 END_TEST_METHOD()
12 }
Alle tests die zijn gedefinieerd in klasse 'MetadataOverridingDataDrivenExample' hebben dus prioriteit van 2. Houd er rekening mee dat tests metagegevens kunnen overschrijven die zijn opgegeven op een niveau erboven (klasse of module). In dit geval behoudt de DataDrivenTest-methode nog steeds de prioriteit 2 en is de 'Eigenaar' gedefinieerd als 'WEX'. Als dit nu een niet-gegevensgestuurde test was, kunt u kiezen op basis van een van deze, /select:"@Priority=2" of /select:"@Owner='WEX'" en voer de testmethode erin uit. Maar met gegevensgestuurde tests kunt u de eigenschap die van toepassing is op het niveau van de testmethode verder overschrijven door metagegevens op het niveau Rij op te geven.
Laten we eens kijken naar het XML-bestand om te begrijpen hoe u dit doet.
1 <?xml version="1.0"?>
2 <Data>
3 <Table Id="MetadataTable">
4 <ParameterTypes>
5 <ParameterType Name="Size">int</ParameterType>
6 </ParameterTypes>
7 <Row Priority="1">
8 <Parameter Name="Size">4</Parameter>
9 <Parameter Name="Color">White</Parameter>
10 </Row>
11 <Row Owner="C2">
12 <Parameter Name="Size">10</Parameter>
13 <Parameter Name="Color">Black</Parameter>
14 </Row>
15 <Row Priority="1" Owner="C3">
16 <Parameter Name="Size">9</Parameter>
17 <Parameter Name="Color">Orange</Parameter>
18 </Row>
19 <Row>
20 <Parameter Name="Size">9</Parameter>
21 <Parameter Name="Color">Blue</Parameter>
22 </Row>
23 </Table>
24 </Data>
In de eerste drie rijen overschrijft het voorbeeld enkele metagegevens door expliciet de metagegevens op te geven voor de specifieke set gegevenswaarden. De laatste set gegevens heeft echter dezelfde metagegevens als de methode die deze bevat: Priority=2 en Owner=WEX.
Laten we eens kijken naar de beheerde code voordat we kijken naar de selectie en uitvoering van deze tests.
1 [TestClass]
2 public class DataDrivenMetadataOverridingExample
3 {
4 [ClassInitialize]
5 [Priority(2)]
6 public static void MyClassInitialize(Object testContext)
7 {
8 }
9
9 [TestMethod]
10 ...
11 [TestProperty("Owner", "WEX")]
12 public void DataDrivenTest()
13 {
14 ...
15 }
...
Je bootst de eigenschappen in het interne voorbeeld ook precies hier na.
Laten we het overriden een beetje beter begrijpen:
TE.exe Examples\CSharp.DataDriven.Example.dll /select:"@Name='*overriding*' and @Priority=1"
zal worden uitgevoerd
- WEX.Voorbeelden.DataDrivenMetadataOverridingExample.DataDrivenTest#0
- WEX.Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#2
TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*overriding*' and @Priority=1"
wordt uitgevoerd:
- WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#0
- WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#2
Oefening voor de lezer
Probeer als oefening nieuwe metagegevenswaarden toe te voegen. Door enkel de selectiecriteria te variëren in de bovenstaande voorbeelden,
/select:"@Name='*overriding*' and @Owner='WEX'"
voert gegevensgestuurde tests uit met index #0 en #3 in zowel beheerde als systeemeigen voorbeelden
/select:"@Name='*overriding*' and @Priority=2"
voert gegevensgestuurde tests uit met index #1 en #3 en voert ook de NonDataDrivenTest uit in het beheerde voorbeeld
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /name:*overriding* /listproperties
F:\ Examples\CPP.DataDriven.Example.dll
WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample
Property[Priority] = 2
WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#0
Property[Owner] = WEX
Property[Priority] = 1
Property[DataSource] = Table:MetadataOverridingDataDrivenExample.xml#MetadataTable
Data[Color] = White
Data[Size] = 4
WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#1
Property[Owner] = C2
Property[DataSource] = Table:MetadataOverridingDataDrivenExample.xml#MetadataTable
Data[Color] = Black
Data[Size] = 10
WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#2
Property[Owner] = C3
Property[Priority] = 1
Property[DataSource] = Table:MetadataOverridingDataDrivenExample.xml#MetadataTable
Data[Color] = Orange
Data[Size] = 9
WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#3
Property[Owner] = WEX
Property[DataSource] = Table:MetadataOverridingDataDrivenExample.xml#MetadataTable
Data[Color] = Blue
Data[Size] = 9
F:\ Examples\CSharp.DataDriven.Example.dll
WEX.Examples.DataDrivenMetadataOverridingExample
Setup: MyClassInitialize
Property[Priority] = 2
WEX.Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#0
Property[DataSource] = Table:CSharpDataDrivenMetadataOverridingExample.xml#MetadataTable
Property[Owner] = WEX
Property[Priority] = 1
Data[Color] = White
Data[Size] = 4
WEX.Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#1
Property[DataSource] = Table:CSharpDataDrivenMetadataOverridingExample.xml#MetadataTable
Property[Owner] = C2
Data[Color] = Black
Data[Size] = 10
WEX.Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#2
Property[DataSource] = Table:CSharpDataDrivenMetadataOverridingExample.xml#MetadataTable
Property[Owner] = C3
Property[Priority] = 1
Data[Color] = Orange
Data[Size] = 9
WEX.Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#3
Property[DataSource] = Table:CSharpDataDrivenMetadataOverridingExample.xml#MetadataTable
Property[Owner] = WEX
Data[Color] = Blue
Data[Size] = 9
WEX.Examples.DataDrivenMetadataOverridingExample.NonDataDrivenTest