重新啟動
TAEF 可讓測試指定它可能造成或要求電腦重新開機。 此功能包含兩到三個元件:中繼資料,將測試標示為可能造成或需要重新開機、API 要求 TAEF 執行重新開機或通知 TAEF 即將起始的測試重新開機,以及選擇在本機執行這些測試時的命令選項。
行為
重新開機電腦的特定語意需要對 TAEF 執行模型進行一些變更、保證安裝和清除作業,以及成功和失敗行為。
- 重新開機行為僅適用于具有適當中繼資料) 的測試 (,不適用於裝置 (安裝和清除) 。
- 如果從具有適當標記之測試以外的任何位置使用重新開機 API,則不會傳回函式。 相反地,TAEF 會終止測試程式。 這代表撰寫測試的方式和測試程式碼應該修正的錯誤。
- 測試裝置將不會在重新開機界限上執行。 這表示在重新開機之前不會執行終止作業 (不論測試起始重新開機,還是要求 TAEF 造成重新開機本身) ,而且在重新開機之後將不會執行安裝程式作業。
- 記錄 (,因此會在您通知或要求重新開機,直到測試完成為止,忽略記錄失敗) 。
中繼資料
若要啟用重新開機 API 的使用,應該將 RebootPossible 中繼資料設定為 「true」來標示測試。 此中繼資料會遵守中繼資料繼承的一般規則,因此,如果類別中的任何測試可能會重新開機 (但假設重新開機的本質相當重,建議您明確決定哪些測試可以和無法起始重新開機) 。 如需中繼資料規格範例,請參閱以 C++ 撰寫測試 的檔和 C# 中的撰寫測試 。
API
處理機器重新開機的主要功能有兩個:
- 重新開機 (選項) 要求 TAEF 起始測試電腦的重新開機。
- RebootCustom (選項) 通知 TAEF 測試會導致測試機器重新開機。 此 API 也支援系統當機。 TAEF 可確保在 API 傳回之後排清適用的資料。
Option參數會指定繼續行為,其中一個:
- 重新執行,導致 TAEF 在重新開機發生之後再次執行相同的測試
- 繼續,導致 TAEF 在重新開機之後執行下一個測試
本地
藉由包含 Interruption.h 標頭並呼叫 WEX::TestExecution::Interruption 命名空間中的函式,來存取 Reboot API。 四個可能的呼叫包括:
using namespace WEX::TestExecution;
Interruption::Reboot(RebootOption::Rerun);
Interruption::Reboot(RebootOption::Continue);
Interruption::RebootCustom(RebootOption::Rerun);
Interruption::RebootCustom(RebootOption::Continue);
管理
在 WEX 的 「中斷 靜態」類別中呼叫兩種方法之一 。TestExecution 命名空間,位於 Te.Managed.dll中:
using WEX.TestExecution;
Interruption.Reboot(RebootOption.Rerun);
Interruption.Reboot(RebootOption.Continue);
Interruption.RebootCustom(RebootOption.Rerun);
Interruption.RebootCustom(RebootOption.Continue);
命令提示字元使用方式
這項功能的理想用法是執行 TAEF 測試,這些測試可能會透過 跨電腦執行 或透過 WTT 重新開機。 在這些情況下,TAEF 會隱含地啟用重新開機執行*,因為它不應該中斷您的工作流程。 如果您要在本機電腦上手動執行重新開機測試,或需要覆寫 TAEF 用來快取其狀態的預設路徑,則必須明確地選擇重新開機測試。 如果您未這麼做,則會將任何重新開機的測試標示為已封鎖。 若要在本機執行時啟用重新開機測試,請使用下列命令引數:
Te.exe /rebootStateFile:MyRestartFile.xml
TAEF 會建立指定的檔案,以儲存其狀態 (已執行哪些測試、任何 TAEF 命令或環境選項等,) ,並在重新開機後從其離開的位置繼續。 TAEF 會在電腦重新開機後再次執行後,再重新執行一次。
請注意,由於移除 TAEF 相依的功能在重新開機後繼續測試, (RunOnce 金鑰) ,所以此選項不適用於 Arm 機器。
* 只要您未使用任何不相容的執行功能, (目前 ) 平行 和 測試模式 。
常見問題集
如果我選擇 [重新執行],是否可以判斷第一次或重新開機之後是否要叫用測試?
TAEF 不會提供任何功能供您達成此目的。 重新執行選項的意圖是讓您撰寫測試,這些測試可能需要根據電腦的狀態來不確定重新開機次數 (,例如執行Windows Update完成) 。 請考慮使用 ExecutionGroup 和 continue 選項,將工作細分為重新開機之前/之後順序發生的個別測試作業。
支援哪些 TAEF 測試類型?
這項功能適用于原生、受控和腳本測試。