共用方式為


匯出失敗的 HLK 作業

您現在可以匯出失敗的作業,以便在完整 HLK 環境以外的電腦上執行。 對於驅動程式開發人員,此功能允許獨立執行測試,以簡化重現失敗的程式。

匯出的測試環境會密切模擬專用 HLK 環境。 不過,這不保證相同的測試執行。 使用者可能需要處理下列任何情況:

  • 測試基礎結構不會處理重新開機。 在許多情況下,使用者必須手動重新開機系統。
  • 在某些情況下,測試會透過測試工作內的 HLK 用戶端基礎結構重新開機系統。 例如,這些重新開機可能不會在批次檔中擷取,因為獨立執行期間出現提示或重新開機。
  • 由不同工作寫入相同位置的非唯一命名記錄檔,可能會導致部分檔案遭到覆寫。
  • 在不同的系統上執行時,寫入批次檔的參數可能會不同。 例如,當移至不同的系統時,相同硬體和驅動程式的硬體和驅動程式的硬體實例識別碼可能會有所不同,而且使用者必須從裝置管理員查閱對應的目標值 (,例如) 並以正確的值更新批次檔。
  • 相依于要設定系統之相關聯組態作業的測試可能無法正確準備,因為 HLK 只會匯出測試作業本身。

並非所有結果都可以匯出。 下列清單描述可匯出之測試和測試結果的限制:

  • 測試必須已執行並完成,且狀態為通過、失敗或已取消。
  • 測試回合必須成功從用戶端系統傳回基礎結構記錄。 匯出測試需要這些檔案。
  • 只能匯出單一機器測試。 需要多部機器執行的測試無法匯出。
  • 必須使用 HLK 桌面用戶端來執行測試。 無法在 Windows Core 或 Proxy 行動用戶端系統上執行測試。
  • 由於已知基礎結構問題或其他原因無法匯出而標記為不可匯出的測試。
  1. 在 HLK Studio 的 [ 結果] 索引 標籤中,以滑鼠右鍵按一下失敗的結果,然後選取 [ 匯出測試回合]。

以滑鼠右鍵按一下失敗測試結果時的操作功能表

  1. [儲存] 對話方塊隨即出現。 將匯出的作業儲存到快閃磁片磁碟機或其他外部位置,以便您將匯出的測試複製到另一部電腦。 相同的測試無法多次匯出至相同的位置。 對話方塊會確認匯出已完成。

匯出測試結果之後的成功對話方塊

  1. 在獨立系統上執行測試所需的測試二進位檔和批次檔會匯出至指定的目錄。 匯出的測試會儲存在具有失敗作業名稱和架構的子目錄中。 必須安裝才能執行測試的基礎結構元件會儲存在稱為 基礎結構 的子目錄中,以及基礎結構的目標架構名稱。

注意

  基礎結構元件應該只在目標系統上安裝一次。 您不需要針對每個失敗的作業重新安裝這些元件。

例如,將標題為在磁片磁碟機 E:\ 根目錄上 設定轉譯目標的 失敗 x64 工作儲存使用下列資料夾結構匯出作業資料夾和基礎結構安裝程式:

E:.
├───Infrastructure(X64)
└───Set_Render_Target(X64)
    ├───CoreClr
    ├───MinTe
    │   └───CoreClr
    ├───NetFx2.0
    ├───NetFx4.5
    ├───verifysupportfiles
    │   ├───CoreClr
    │   ├───MinTe
    │   │   └───CoreClr
    │   ├───NetFx2.0
    │   └───NetFx4.5
    └───[windir]
        └───system32 

匯出的測試套件包含數個檔案和子資料夾,包括下列專案:

  • readme1st.txt - 包含如何執行匯出測試的資訊
  • run.cmd - 用來執行測試的批次檔
  • 執行測試所需的二進位檔和其他檔案
  • 安裝程式 (架構) .exe - 用來安裝基礎結構的可執行檔
  1. 將匯出的測試檔案夾帶到新電腦進行測試。 路徑不應包含任何空格,因為這會導致某些測試失敗。

  2. 執行 (儲存資料夾) \Infrastructure (架構) \setup (architecture) .exe,在執行測試之前先安裝基礎結構元件。 基礎結構安裝程式會顯示對話方塊,指出安裝元件是否成功。

注意

基礎結構元件應該只在目標系統上安裝一次。 您不需要針對每個失敗的作業重新安裝這些元件。

注意

安裝程式和作業的架構必須符合其安裝所在目標系統的架構。

  1. 在 (儲存資料夾) (作業名稱) (架構) 資料夾中的批次檔中,您可以對測試電腦上執行的批次檔進行任何必要的變更。 例如,您可能會進行下列變更:
  • 批註化不會導致作業失敗的行
  • 變更參數值以符合執行匯出測試的電腦。 例如,相同硬體的實例識別碼通常會在兩個不同的系統上有所不同,因此在執行匯出的測試之前,必須先更新此識別碼。
  • 新增命令以連接偵錯工具

注意

如果工作顯示錯誤訊息「無法執行此測試,因為它可能會重新開機機器」,您必須編輯 run.cmd,並將 /rebootstatefile= (some_file_name) 附加至失敗工作的命令列,如下列範例所示:

cmd /c TE.exe /inproc /enablewttlogging /appendwttlogging devfund_pcirootportsurpriseremovetest_wlk_certification.dll
/p:"MultiDeviceHardwareIdSdelQueryHardwareID=!MultiDeviceHardwareIdSdelQueryHardwareID!"
/p:"MultiDeviceInstanceIdSdelWDKDeviceID=!MultiDeviceInstanceIdSdelWDKDeviceID!" /p:"DQ=!DQ!"
/p:"TestCycles=!TestCycles!" /p:"IOPeriod=!IOPeriod!" /p:"WDTFREMOTESYSTEM=!WDTFREMOTESYSTEM!"
/p:"Wpa2PskAesSsid=!Wpa2PskAesSsid!"
/p:"DriverVerifierAdditionalDrivers=!DriverVerifierAdditionalDrivers!"
/p:"DriverVerifierExcludedFlags=!DriverVerifierExcludedFlags!"
/p:"DriverVerifierCustomizeConfiguration=!DriverVerifierCustomizeConfiguration!"
/rebootStateFile=rebootstatefile.xml
  1. 完成修改之後,請使用系統管理許可權啟動命令提示字元、變更至測試目錄,然後執行 run.cmd。 批次檔中的每個工作都與工作編號相關聯,可在執行批次檔時當做起點使用。 根據預設,執行會在工作之間暫停。 支援下列執行模式:
  • 沒有參數的 「執行」會在批次檔開頭開始執行,並在每個工作之間暫停。
  • 「Run 5」 會啟動批次檔,並跳至工作 5。
  • 「執行 FAST」會以快速模式啟動批次檔, (開頭的工作之間不會暫停) 。
  • 「執行 5 FAST」會以快速模式啟動批次檔, (工作) 工作 5 之間沒有暫停。
  • 「RebootResume」 會從腳本上次執行的上次重新開機開始批次檔。 也支援 FAST 旗標。
  • 「RerunLast」 會從上次結束批次檔時執行的命令啟動批次檔。 此命令可用來多次重新執行工作,方法是按 Control+C 在工作期間結束腳本,並執行 rerunlast.cmd 以重新執行上一個命令。 也支援 FAST 旗標。
  1. 一旦您識別並修正導致測試失敗的問題,您就可以部署修正程式,並確認作業在 HLK 環境中成功。

注意

您無法將成功的結果匯回 HLK 環境。 您必須從環境中重新執行作業。