Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu bölüm, örnek olarak veri temelli testin bazı gelişmiş özelliklerini kapsar. Eğer hâlâ temelleri öğrenme aşamasındaysanız, Basit Veri Odaklı Bir Örnek ile başlamayı düşünebilirsiniz.
Başvurulan örnekler:
MetadataOverridingDataDrivenExample (Veri Yönlendirmeli Üzerine Yazma Meta Verisi Örneği)
VeriOdaklıMetaVeriGeçersizKılmaÖrneği
Bu bölümde ele alınan örnekleri Basit Veri Temelli Örnek sayfasında ele alınan örneklerle karşılaştırırsanız, tek farkın testteki çeşitli düzeylerdeki meta verilerin ve özelliklerin eklenmiş olması olduğunu fark edersiniz. Önce temel bir testin nasıl yazıldığından bakalım.
Yerel örnekte, aşağıdaki kod örneğinde 5. ve 10. satırları gözlemleyin:
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 }
Bu nedenle "MetadataOverridingDataDrivenExample" sınıfında tanımlanan tüm testler 2 önceliğine sahiptir. Testlerin üstlerinde belirtilen tüm meta verileri (sınıf veya modül) geçersiz kılabileceğini unutmayın. Bu durumda, DataDrivenTest metodu önceliğini 2 olarak korur ve "Sahip" "WEX" olarak tanımlanmıştır. Bu veri temelli olmayan bir testse, bu testlerden herhangi birini (/select:"@Priority=2" veya /select:"@Owner='WEX'" temelinde seçebilir ve test yöntemini yürütebilirsiniz. Ancak veri temelli testlerle, "Satır" düzeyinde meta verileri belirterek test yöntemi düzeyinde geçerli olan özelliği daha fazla geçersiz kılabilirsiniz.
Nasıl yapılacağını anlamak için XML dosyasına bakalım.
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>
İlk 3 satırda, örnek belirli veri değerleri kümesinin meta verilerini açıkça belirterek bazı meta verileri geçersiz kılar. Ancak son veri kümesi, onu içeren yöntemle aynı meta verilere sahiptir: Priority=2 ve Owner=WEX.
Şimdi bu testlerin seçimine ve yürütülmesine bakmadan önce yönetilen koda göz atalım.
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 }
...
Yerel örnekteki özellikleri de tam olarak burada taklit ediyorsunuz.
Şimdi geçersiz kılmayı biraz daha iyi anlayalım:
TE.exe Examples\CSharp.DataDriven.Example.dll /select:"@Name='*overriding*' and @Priority=1"
çalışacak
- WEX.Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#0
- WEX. Examples.DataDrivenMetadataOverridingExample.DataDrivenTest#2
TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*overriding*' and @Priority=1"
şu komutu çalıştırır:
- WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#0
- WEX::TestExecution::Examples::MetadataOverridingDataDrivenExample::DataDrivenTest#2
Okuyucu için alıştırma
Alıştırma olarak yeni meta veri değerleri eklemeyi deneyin. Yalnızca yukarıdaki örneklerde seçim ölçütlerini değiştirerek,
/select:"@Name='*overriding*' and @Owner='WEX'"
hem yönetilen hem de yerel örneklerde dizin #0 ve #3 ile veri temelli testler çalıştırır
/select:"@Name='*overriding*' and @Priority=2"
# 1 ve #3 dizinli veri temelli testleri çalıştırır ve ayrıca yönetilen örnekte NonDataDrivenTest'i çalıştırır
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