Bagikan melalui


Mulai Ulang

TAEF memungkinkan pengujian untuk menentukan bahwa itu dapat menyebabkan atau mengharuskan komputer untuk memulai ulang. Fitur ini terdiri dari dua hingga tiga komponen: metadata untuk menandai pengujian sebagai mungkin menyebabkan atau memerlukan memulai ulang, API untuk meminta agar TAEF melakukan memulai ulang atau memberi tahu TAEF tentang memulai ulang yang mungkin diinisiasi oleh pengujian, dan opsi perintah untuk menjalankan pengujian ini saat menjalankan secara lokal.

Perilaku

Semantik tertentu untuk menghidupkan ulang komputer mengharuskan beberapa perubahan pada model eksekusi TAEF, jaminan operasi penyiapan dan pembersihan, dan perilaku keberhasilan dan kegagalan.

  • Perilaku hidupkan ulang hanya tersedia untuk pengujian (dengan metadata yang sesuai), bukan untuk perbaikan (penyiapan dan pembersihan).
  • Jika Reboot API digunakan dari tempat lain selain pengujian dengan markup yang sesuai, fungsi tersebut tidak akan kembali. Sebagai gantinya, TAEF mematikan proses pengujian. Ini mewakili bug dalam cara pengujian ditulis dan kode pengujian harus diperbaiki.
  • Perlengkapan pengujian tidak akan dijalankan pada batas hidupkan ulang. Ini berarti operasi teardown tidak dijalankan sebelum restart (tidak peduli apakah pengujian memulai ulang atau permintaan agar TAEF melakukan restart sendiri) dan operasi penyiapan tidak akan dijalankan setelah dimulai ulang.
  • Pengelogan (dan akibatnya kegagalan log) akan diabaikan sejak Anda memberi tahu atau meminta mulai ulang hingga pengujian selesai.

Metadata

Untuk mengaktifkan penggunaan API Reboot, pengujian harus ditandai dengan mengatur metadata RebootPossible ke "true". Metadata ini mematuhi aturan pewarisan metadata yang biasa, sehingga dapat ditentukan pada tingkat kelas jika ada pengujian di kelas Anda yang mungkin diulang (meskipun mengingat sifat pengulangan yang agak berat, disarankan untuk membuat keputusan eksplisit tentang pengujian mana yang dapat dan tidak dapat memulai pengulangan). Lihat dokumentasi tentang Pengujian Penulisan di C++ dan Pengujian Penulisan di C# untuk contoh spesifikasi metadata.

API

Ada dua fungsi utama untuk menangani mulai ulang komputer:

  • Reboot(Opsi) meminta TAEF memulai hidupkan ulang mesin uji.
  • RebootCustom(Option) memberi tahu TAEF bahwa pengujian akan menyebabkan mulai ulang komputer pengujian. API ini juga mendukung crash sistem. TAEF akan memastikan bahwa data yang berlaku dihapus setelah API kembali.

Parameter Opsi menentukan perilaku resume, salah satu dari:

  • Jalankan ulang, menyebabkan TAEF menjalankan pengujian yang sama lagi setelah restart terjadi
  • Lanjutkan, menyebabkan TAEF menjalankan pengujian berikutnya setelah restart terjadi

Asli

Akses API Reboot dengan menyertakan header Interruption.h dan panggil fungsi di namespace WEX::TestExecution::Interruption . Empat kemungkinan panggilan adalah:

using namespace WEX::TestExecution;
Interruption::Reboot(RebootOption::Rerun);
Interruption::Reboot(RebootOption::Continue);
Interruption::RebootCustom(RebootOption::Rerun);
Interruption::RebootCustom(RebootOption::Continue);

Dikelola

Panggil salah satu dari dua metode di kelas statis Gangguan di namespace WEX.TestExecution, yang terletak di dalam Te.Managed.dll:

using WEX.TestExecution;
Interruption.Reboot(RebootOption.Rerun);
Interruption.Reboot(RebootOption.Continue);
Interruption.RebootCustom(RebootOption.Rerun);
Interruption.RebootCustom(RebootOption.Continue);

Penggunaan Command Prompt

Penggunaan yang ideal untuk fitur ini adalah menjalankan pengujian TAEF yang berpotensi akan dimulai ulang dengan Cross Machine Execution atau melalui WTT. Dalam kasus ini, TAEF memungkinkan eksekusi ulang dilakukan secara implisit karena seharusnya tidak mengganggu alur kerja Anda. Jika Anda menjalankan pengujian mulai ulang secara manual pada komputer lokal atau perlu mengambil alih jalur default yang digunakan TAEF untuk menyimpan statusnya, Anda harus secara eksplisit memilih untuk memulai ulang pengujian. Jika tidak, maka setiap pengujian mulai ulang akan ditandai sebagai diblokir. Untuk mengaktifkan mulai ulang pengujian saat menjalankan secara lokal, gunakan argumen perintah berikut:

Te.exe /rebootStateFile:MyRestartFile.xml

TAEF akan membuat file yang ditentukan untuk menyimpan statusnya (pengujian mana yang telah dijalankan, perintah TAEF atau opsi lingkungan apa pun, dll.) dan melanjutkan dari tempat yang ditinggalkannya ketika dilanjutkan setelah restart. TAEF menangani eksekusi ulang dirinya sendiri setelah komputer muncul lagi setelah restart.

Perhatikan bahwa opsi ini tidak berfungsi pada komputer Arm karena penghapusan fitur yang bergantung pada TAEF untuk melanjutkan pengujian setelah reboot (kunci RunOnce).

* Selama Anda tidak menggunakan fitur eksekusi yang tidak kompatibel (saat ini Mode Paralel dan Pengujian).

Tanya Jawab Umum

Jika saya memilih Jalankan ulang, apakah ada cara saya dapat mengetahui apakah pengujian sedang dipanggil untuk pertama kalinya atau setelah memulai ulang?

TAEF tidak menyediakan fungsionalitas apa pun bagi Anda untuk mencapai hal ini. Tujuan dari opsi jalankan ulang adalah untuk memungkinkan Anda menulis pengujian yang mungkin memerlukan jumlah restart yang tidak ditentukan berdasarkan status komputer (seperti menjalankan Windows Update hingga selesai). Pertimbangkan untuk menggunakan ExecutionGroup dan opsi lanjutkan untuk memecah tugas menjadi operasi pengujian terpisah yang terjadi secara berurutan sebelum/setelah mulai ulang.

Jenis pengujian TAEF mana yang didukung?

Fitur ini tersedia untuk pengujian asli, terkelola, dan berbasis skrip.