Pilihan
Test Authoring and Execution Framework (TAEF) menyediakan mekanisme untuk menjalankan atau menghilangkan pengujian tertentu secara selektif berdasarkan informasi metadata yang Anda berikan. Bagian berikut membahas berbagai contoh cara menggunakan mekanisme pemilihan ini dengan TE.exe.
Anda dapat menjalankan TE.exe dari jendela prompt perintah.
TE <test_binaries> [/select:<selection criteria>]
Bagian ini menjelaskan opsi kriteria TE.exe /select:selection . Untuk informasi selengkapnya tentang TE.exe, lihat Opsi Perintah TE.exe.
Kriteria pemilihan diterapkan secara global ke semua biner pengujian yang telah disebutkan di prompt perintah. Mari kita pertimbangkan dua test_binaries: Examples\CPP. SelectionCriteria1.Example.dll dan Contoh\CPP. SelectionCriteria2.Example.dll . Contoh berikut menunjukkan properti, atau metadata, yang ditentukan pada berbagai tingkatan dalam test_binaries ini. Anda juga dapat memperoleh ini dengan menentukan opsi /listproperties di jendela Prompt Perintah.
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
Dengan kata lain, dengan menggunakan /listproperties pada masing-masing test_binaries ini secara terpisah, Anda mendapatkan:
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
Dan:
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
Penting untuk dicatat pada titik ini bahwa test_binaries tercantum bersama dengan jalur lengkapnya, dan nama kelas tercantum sebagai "<Namespace>::<ClassName>" dalam kasus test_binaries asli dan "<Namespace.><ClassName>" dalam kasus test_binaries terkelola. Demikian pula, nama metode pengujian terdaftar sebagai "<Namespace>::<ClassName>::<TestMethodName>" dalam kasus test_binaries asli dan "<Namespace>.<ClassName>.<TestMethodName>" dalam kasus test_binaries terkelola.
Dengan kata lain, nama yang sepenuhnya memenuhi syarat dari nama atau fungsi apa pun adalah apa yang disimpan di te. Ini untuk memungkinkan kemampuan untuk membedakan metode apa pun secara unik. Misalnya jika dua kelas memiliki nama metode yang sama, kualifikasi kelas membantu memilih metode yang Anda minati secara unik. Menuju akhir ini, kriteria pemilihan hanya membantu menjalankan pengujian yang sesuai dengan kriteria Anda dalam test_binaries yang diberikan.
Dalam contoh di atas, katakanlah dalam Contoh\Cpp.SelectionCriteria1.Example.dll, Anda dapat memilih "Method111" dengan salah satu kriteria pilihan berikut:
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'"
Anda dapat memilih untuk menjalankan semua pengujian yang telah ditandai dengan "Prioritas" kurang dari 2 dengan menjalankan:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority < 2"
Ini hanya akan menjalankan Examples\CPP. SelectionCriteria1.Example.dll - "class11::method111" dalam contoh kami.
Jika Anda ingin menjalankan semua pengujian di bawah class11, Anda dapat menggunakan properti "Nama" yang memenuhi syarat bersama dengan pencocokan kartubebas untuk memilihnya sebagai berikut:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll
/select:"@Name='*::class11::*'"
Saat menggunakan kriteria pemilihan, ada beberapa hal yang berguna untuk diingat:
- "dan", "tidak", dan "atau" adalah kata yang dipesan dan tidak peka huruf besar/kecil.
- nama dan nilai properti metadata tidak peka huruf besar/kecil, misalnya "C2" dalam contoh, akan cocok dengan "c2" dan "C2". Oleh karena itu, jika Anda memiliki satu fungsi dengan metadata "properti" dan satu lagi dengan "Properti" dan kriteria pemilihan mencari "PROPERTY", itu akan cocok dengan keduanya.
- Nilai string dalam string kueri pilihan harus disertakan dalam tanda kutip tunggal. Dalam nilai string dalam kueri pilihan "?" adalah karakter kartubebas tunggal dan "*" adalah 0 karakter kartubebas atau lebih.
- Saat menggunakan tanda kutip di prompt perintah Anda, perhatikan tanda kutip cerdas saat Anda menyalin kueri pilihan. Jika Anda menyalin kueri pilihan dari email Outlook, Anda mungkin tidak sengaja memiliki tanda kutip pintar, dan TAEF mungkin tidak dapat mengurainya. Ketik tanda kutip sebagai gantinya.
Mari kita membahas beberapa contoh cepat kriteria senyawa pilihan dan apa yang akan mereka jalankan.
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=2"
Akan berjalan:
- Contoh\CPP. SelectionCriteria2.Example.dll - class21::method211
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C2' AND @Priority=3"
Akan berjalan:
- Contoh\CPP. SelectionCriteria1.Example.dll - class11::method112
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='U3' oR @Priority=1"
Akan berjalan:
- Contoh\CPP. SelectionCriteria1.Example.dll - class11::method111
- Contoh\CPP. SelectionCriteria2.Example.dll - class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*)"
Akan menjalankan semua pengujian di mana nilai BackwardsCompatibility belum ditentukan. (Lihat item berikut.)
- Contoh\CPP. SelectionCriteria1.Example.dll - class11::method111, class12::method121
- Contoh\CPP. SelectionCriteria2.Example.dll - class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Owner='C*'"
akan menjalankan semua pengujian di mana nilai Pemilik dimulai dengan "C" (tidak peka huruf besar/kecil). Dengan demikian, perintah sebelumnya akan menjalankan semua pengujian di Examples\CPP. SelectionCriteria1.Example.dll dan semua pengujian di Examples\CPP. SelectionCriteria2.Example.dll di bawah kelas21 (yaitu metode211)
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"not(@BackwardsCompatibility=*) OR (@Owner='C*' AND @BackwardsCompatibility='*XP*')"
akan menjalankan semua pengujian di mana BackwardsCompatibility tidak ditentukan atau, di mana nama pemilik dimulai dengan "C" dan nilai backwardsCompatibilty berisi XP. PERHATIKAN bagaimana tanda kurung "(" dan ")" digunakan untuk menentukan urutan prioritas.
Dalam contoh, ini akan berjalan secara selektif:
- Contoh\CPP. SelectionCriteria1.Example.dll - class11::method111, class12::method121,
- Contoh\CPP. SelectionCriteria2.Example.dll - class21::method211, class22::method221
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Owner='???'"
hanya akan menjalankan pengujian yang memiliki nilai pemilik properti yang hanya berisi 3 karakter.
Dalam contoh kami, ini akan cocok dengan "C" dan hanya berjalan:
- Contoh\CPP. SelectionCriteria1.Example.dll - class12::method121
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /select:"@Priority>=1"
Catatan
Ini adalah contoh yang baik tentang bagaimana Anda dapat menggunakan ">=", "<=", ">" dan "<" di mana propertyvalues adalah floatvalues.
Dalam contoh kami, ini akan menjalankan semua metode kecuali Examples\CPP. SelectionCriteria2.Example.dll - class22::method221, di mana tidak ada proritas yang ditentukan. Dengan kata lain, ini akan berjalan:
- Contoh\CPP. SelectionCriteria1.Example.dll - class11::method111, class11::method112, class12::method121
- Contoh\CPP. SelectionCriteria2.Example.dll - class21::method211.
PERHATIKAN bahwa Anda dapat menggunakan "/select" bersama dengan opsi perintah lain seperti "/list" "/listproperties" dll.
Kutipan Cerdas
Anda mungkin menemukan tanda kutip pintar dalam kriteria pilihan Anda jika Anda menyalin kriteria pilihan dari dokumen Outlook atau Word kembali ke prompt perintah Anda. Anda dapat menemukan informasi selengkapnya tentang kutipan cerdas apa yang ada di Kutipan pintar: Momok teks tersembunyi yang dimaksudkan untuk konsumsi komputer
Tidak ada cara mudah untuk menghindari tanda kutip cerdas - pendekatan terbaik adalah menghapus semua tanda kutip ganda " dan ' tanda kutip tunggal dalam kriteria pemilihan setelah Anda menyalinnya ke prompt perintah dan mengetik ulang bagian kutipan kueri.
Ada pengaturan opsi untuk menonaktifkannya saat membuat pesan di Outlook. Ketik "tanda kutip pintar" ke dalam kotak bantuan Outlook untuk menemukan ini.
Pilihan berbasis Nama Cepat
TAEF memungkinkan pemilihan cepat berdasarkan nama pada prompt perintah menggunakan parameter baris perintah '/name':
/name:<test name with wildcards>
setara dengan:
/select:@Name='<test name with wildcards>'
Dengan kata lain, Anda sekarang bisa memberikan kueri pilihan berdasarkan nama seperti:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll \
/select:"@Name='*::class11::*'"
lebih cepat dengan menggunakan /name seperti:
Te.exe Examples\CPP.SelectionCriteria1.Example.dll Examples\CPP.SelectionCriteria2.Example.dll /name=*::class11::*
Perhatikan bahwa jika /name dan /select disediakan pada prompt perintah, maka /name diabaikan dan /select lebih diutamakan.