Bagikan melalui


Reboot

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 hidupkan ulang, API untuk meminta TAEF melakukan hidupkan ulang atau memberi tahu TAEF tentang mulai ulang yang dimulai pengujian yang akan datang, dan opsi perintah untuk memilih untuk menjalankan pengujian ini saat menjalankan secara lokal.

Perilaku

Semantik khusus memulai 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 ke perlengkapan (penyiapan dan pembersihan).
  • Jika API Reboot digunakan dari mana saja selain pengujian dengan markup yang sesuai, fungsi tidak akan kembali. Sebaliknya, 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 mulai ulang (tidak peduli apakah pengujian memulai hidupkan ulang atau permintaan yang menyebabkan TAEF menghidupkan ulang itu sendiri) dan operasi penyiapan tidak akan dijalankan setelah restart.
  • 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 warisan metadata yang biasa, sehingga dapat ditentukan pada tingkat kelas jika ada pengujian di kelas Anda yang mungkin dimulai ulang (meskipun mengingat sifat hidupkan ulang yang agak berat, disarankan untuk membuat keputusan eksplisit tentang pengujian mana yang dapat dan tidak dapat memulai hidupkan ulang). 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 mesin:

  • Reboot(Opsi) meminta TAEF memulai hidupkan ulang mesin uji.
  • RebootCustom(Option) memberi tahu TAEF bahwa pengujian akan menyebabkan mulai ulang mesin uji. 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 memanggil 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 WEX. Namespace testExecution , yang terletak di dalamTe.Managed.dll:

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

Penggunaan Prompt Perintah

Penggunaan ideal untuk fitur ini adalah menjalankan pengujian TAEF yang berpotensi akan dimulai ulang dengan Eksekusi Mesin Silang atau melalui WTT. Dalam kasus ini TAEF memungkinkan eksekusi hidupkan ulang secara implisit* karena tidak boleh mengganggu alur kerja Anda. Jika Anda menjalankan pengujian hidupkan 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 pengujian mulai ulang apa pun 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 dimulai ulang. TAEF menangani eksekusi ulang dirinya sendiri setelah mesin 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 Uji).

Tanya Jawab Umum

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

TAEF tidak menyediakan fungsionalitas apa pun bagi Anda untuk mencapai hal ini. Tujuan dari opsi eksekusi 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 skrip.