Bagikan melalui


Menjalankan pengujian berbasis Data

Pastikan Anda mengetahui cara menulis pengujian berbasis Data dan cara menjalankan pengujian dengan TAEF sebelum Anda mulai dengan tips dan trik menjalankan DataDrivenTests dengan TAEF. Mungkin berguna untuk me-refresh memori Anda tentang cara kerja kueri pemilihan dengan TAEF juga.

Bagian ini secara khusus berbicara tentang menjalankan pengujian berbasis data berbasis tabel, tetapi prinsip dasar yang sama berlaku untuk pengujian berbasis PICT dan berbasis WMI berbasis data juga.

Jika Anda hanya ingin menjalankan semua pengujian Anda, termasuk pengujian berbasis data, tidak ada perbedaan dari bagaimana Anda biasanya akan menjalankannya dengan TAEF. Mari kita pertimbangkan contoh menjalankan CPP\DataDrivenExample dan CSharp\DataDrivenExample bersama-sama menggunakan TAEF. Ingatlah bahwa secara default TAEF menjalankan pengujian di luar proc. Jika Anda ingin menjalankannya secara inproc, gunakan sakelar "/inproc".

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll

Lihat file xml dan file header yang menentukan metadata. Jalankan hanya pengujian datadriven yang memiliki prioritas=1 sebagai berikut:

TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"

Perlu diingat bahwa metadata yang ditentukan pada tingkat baris dalam file xml mengambil alih metadata yang ditentukan di tingkat penulisan TestMethod.

Mari kita jelajahi sedikit lebih banyak kekuatan eksekusi pengujian berbasis data dengan TAEF. Katakanlah, Anda hanya ingin memprogram ulang baris ke-3 dalam fungsi FirstTable(). Anda dapat melakukan ini dengan menggunakan indeks baris, yang akan menjadi 2 (indeks dimulai pada 0):

TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"

Perhatikan bahwa kriteria pemilihan sekarang memiliki namespace baru "@Data:" yang dapat secara khusus digunakan untuk pengujian berbasis data. Ketika Anda menjalankan pengujian di atas, Anda akan melihat bahwa alih-alih '#index' biasa yang ditambahkan ke nama pengujian jika terjadi pengujian berbasis data, Anda memiliki '#Black' ditambahkan ke nama pengujian - ini adalah metadata 'Nama' khusus yang ditentukan untuk baris ini. Lihat Menentukan metadata di tingkat Baris untuk detailnya. Meskipun nama khusus ini, Anda masih dapat memilih menggunakan nama tersebut. Pemilihan indeks dapat berjalan jauh untuk memilih rentang baris untuk himpunan data yang sangat besar. Misalnya (hipotetis - tidak dalam contoh) jika Anda memiliki pengujian berbasis data dengan 100 baris (indeks maks = 99) dan Anda hanya ingin menjalankan baris dengan indeks yang lebih besar dari 10 dan kurang dari 20, Anda sekarang dapat dengan mudah menentukan ini sebagai:

TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"

Sering kali, Anda ingin melakukan repro berdasarkan nilai data tertentu dan tidak harus melalui masalah menemukan indeksnya. Dalam hal ini Anda dapat menggunakan namespace "@Data:" lagi. Sekarang katakanlah dalam contoh asli pengujian unit (lihat Penulisan pengujian berbasis data), Anda hanya ingin menjalankan kasus-kasus tersebut ketika "Tema" adalah "AeroBasic".

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"

Ini akan ditampilkan di konsol sebagai berikut:

StartGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Process: 3588; Thread: 4584]
I am in second table.
Theme supplied as AeroBasic
EndGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Passed]
Summary: Total=1, Passed=1, Failed=0, Blocked=0, Not Run=0, Skipped=0

Anda juga dapat memanfaatkan /listproperties untuk pengujian datadriven untuk melihat himpunan data dan metadata (kombinasi metadata yang ditentukan pada tingkat metode pengujian dan tingkat baris) untuk pengujian berbasis data. Sehingga,

TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties

akan mencantumkan semua metode (datadriven dan sebaliknya) bersama dengan metadata dan nilai data yang tersedia dan ditentukan di berbagai tingkatan.

Lihat Mengambil alih metadata di tingkat Baris, Menentukan jenis parameter array dan Contoh berbasis data sederhana misalnya panduan memberikan lebih banyak wawasan.