Bagikan melalui


Metadata Bersyarkat

Terkadang berguna untuk mengubah nilai metadata tergantung pada nilai runtime. Metadata kondisional memungkinkan metadata modul, kelas, atau metode hanya diterapkan dalam kondisi tertentu berdasarkan parameter runtime.

Sintaks

Untuk membuat metadata bersyukur, tambahkan kondisi yang dikelilingi oleh kurung siku setelah nama metadata. Kondisi harus dalam format bahasa kueri pilihan kami. Nilai untuk variabel berasal dari parameter runtime.

Misalnya, pengujian memiliki metadata berikut:

TEST_METHOD_PROPERTY(L"RunAs", L"Elevated")
TEST_METHOD_PROPERTY(L"Ignore[@NoElevation=true]", L"true")

Kemudian ketika TAEF memuat DLL, TAEF akan mengevaluasi kondisi "@NoElevation=true" berdasarkan parameter runtime. Jadi, jika pengguna mengatur parameter runtime "NoElevation" ke true, maka pengujian akan memiliki metadata yang diterapkan padanya dengan nama "Ignore" dan nilai "true".

Jika beberapa metadata bersyariah muncul dalam satu pengujian, masing-masing dievaluasi secara independen dengan cara yang sama. Ini dapat berguna jika Anda ingin pengujian mengenali beberapa nilai yang mungkin dari parameter runtime.

TEST_METHOD_PROPERTY(L"Data:MyTestData[@TestCaseLevel='Low']", L"{ Datum1, Datum2, Datum3 }")
TEST_METHOD_PROPERTY(L"DataSource[@TestCaseLevel='High']", L"Pict:FullDataSet.model?Order=3")

Jika pengujian memiliki metadata yang ditunjukkan di atas dan pengguna mengatur TestCaseLevel ke Rendah, pengujian hanya akan dipanggil tiga kali karena sumber data yang ringan. Jika pengguna mengatur TestCaseLevel ke Tinggi, sumber data PICT akan digunakan untuk menghasilkan lebih banyak parameter untuk pengujian. Jika TestCaseLevel tidak diatur ke Tinggi atau Rendah, maka tidak ada metadata yang akan ditambahkan.

Nilai Default

Ketika Anda ingin menambahkan metadata hanya ketika tidak ada kondisi lain untuk nama metadata tertentu yang telah dievaluasi ke true, Anda dapat menambahkan nama metadata dengan [default].

TEST_METHOD_PROPERTY(L"DataSource", L"Pict:MyTest.model")
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='Low']", L"1")
TEST_METHOD_PROPERTY(L"Pict:Order[default]", L"2")
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='High']", L"3")

Jika pengujian memiliki metadata di atas dan pengguna tidak mengatur TestCaseLevel ke Rendah atau Tinggi, Pict:Order akan diatur ke 2. Jika pengguna mengatur TestCaseLevel ke Rendah atau Tinggi, Pict:Order masing-masing akan diatur ke 1 atau 3. Nilai 2 tidak akan berlaku karena setidaknya satu kondisi pada pengujian tersebut untuk Pict:Order dievaluasi ke true.

Berhati-hatilah untuk tidak meninggalkan [default] jika diperlukan.

TEST_METHOD_PROPERTY(L"DataSource", L"Pict:MyTest.model")
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='Low']", L"1")
TEST_METHOD_PROPERTY(L"Pict:Order", L"2") // This should have [default]
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='High']", L"3")

Jika TestCaseLevel diatur ke Rendah, set metadata di atas setara dengan kumpulan metadata berikut:

TEST_METHOD_PROPERTY(L"DataSource", L"Pict:MyTest.model")
TEST_METHOD_PROPERTY(L"Pict:Order", L"1")
TEST_METHOD_PROPERTY(L"Pict:Order", L"2")

Dalam hal ini, tidak ditentukan apakah sumber data PICT akan menggunakan "1" atau "2" untuk urutan PICT.