共用方式為


跨電腦執行

TAEF 支援在一部計算機上執行 Te.exe,但在個別計算機上執行測試的能力。 TAEF 會驗證、授權及部署必要的二進位檔,以執行測試,並將所有信息記錄回原始控制台。

先決條件

若要從遠端執行測試,需要下列需求:

  • 您必須在目標電腦上安裝並執行 Te.Service(x86 或 x64)。

使用網域帳戶執行

  • 網域帳戶必須是目標計算機上本機「遠端TAEF使用者」群組的系統管理員或成員。

使用非網域帳戶執行

  • 本地(非網域帳戶)必須在這兩台電腦上使用相同的使用者名稱和密碼。

  • 該用戶必須是目標計算機上本機 「遠端 TAEF 使用者」群組的成員。

  • 在主計算機上,本機使用者可以執行 Te.exe,或者,您也可以將本機使用者的一般認證新增至認證管理員。

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • 如果您在已加入網域的計算機上執行,則已加入網域的計算機必須有IPSec界限排除。

從遠端執行測試

/運行中:

若要從遠端執行測試,您必須指定 /runOn:<machine name> 參數來 Te.exe,以及其餘的命令。 如果您符合必要條件,則其餘用戶體驗會與在本機執行測試時找到的相同。 所有記錄輸出都會儲存/寫入本機計算機。

例如:

te unittests\wex.common.tests.dll /runon:TAEFTest1
  • 將測試所需的所有必要執行檔傳送至目標電腦(TAEFTest1),並遠端執行 wex.common.tests.dll內的所有 TAEF 測試,同時回傳日誌至主控台。

如果您因為 HRESULT 0x800706BA而無法連線到遠端電腦,而且您確定您已正確拼字電腦名稱,請嘗試使用電腦的 IP 位址或使用 /disableTimeouts 參數。 有時候 DNS 延遲可能會達到足以使連線嘗試逾時的程度。

注意: 如果這是第一次指定 /runOn: 指令,您可能需要在防火牆排除對話方塊上點擊 [ 解除封鎖] 以解除對 Te.exe的封鎖。

測試相依性

Te.exe 會自動判斷您所有測試的原生和受控模組相依性,並將它們連同測試 dll 一起傳送至遠端電腦。 這會排除 系統 二進位檔,以及測試所需的任何 COM 連結庫。

您可以透過 /TestDependencies 命令行參數,以分號分隔的檔案或目錄清單的形式手動指定其他測試相依性。

  • 檔案

    每個檔案規格都可以包含通配符(test.txt;test*.dll等)。 例如:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
    
    • 將測試所需的所有二進位檔傳送至 TAEFTest1,以及任何符合 /TestDependencies 參數中所指定檔案的檔案。
  • Directories

    TAEF 支援遞歸目錄搜尋存在於包含測試二進位檔之目錄 或目錄下方 的目錄。 例如:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
    
    • 將測試所需的所有二進位檔傳送至 TAEFTest1,以及 unittests 目錄內或下方的所有檔案/目錄。 TAEF 會保留目錄階層。
    _    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
    
    • 將測試所需的所有二進位檔傳送至 TAEFTest1,以及 unittests 目錄中或下方的所有 jpg 檔案。 TAEF 會保留目錄階層。

    注意:如果您為不存在於測試目錄 或下方 的目錄指定遞歸或非遞歸目錄搜尋,所有檔案都會複製到遠端計算機,但目錄階層將會扁平化。

您可以透過 DeploymentItem 元數據指定測試相依性

用戶背景

根據預設,TAEF 會嘗試在遠端電腦上使用您的用戶環境來執行測試。 其作法如下:

  • 列舉遠端電腦上的所有使用中會話,並尋找您所擁有的會話。
    • 如果 TAEF 在遠端機器上找到您所擁有的工作階段,它會在該工作階段內及其桌面上執行測試。

      注意: 這不一定是主控台會話。 它可以是遠端桌面會話。

    • 如果 TAEF 未尋找到 您在遠端機器上擁有的工作階段,它會以登入主控台工作階段的使用者身分執行測試(例如在該桌面上)。

    • 最後,如果您未在遠端電腦上擁有會話,而且沒有人登入主控台會話,TAEF 會在會話 0 中執行測試(非互動式)。

RunAs

如果您除了 /runOn 之外,還指定了 /runAs 值,TAEF 會同時使用上述的啟發法則,以及滿足 /runAs 設定所需的啟發法則。 例如:

te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
  • 使用系統帳戶執行 TAEFTest1 上存在於 wex.common.tests.dll 內的所有 TAEF 測試。

運作方式

  • Te.exe 連線到在遠端電腦上執行的Te.Service實例
    • Windows 驗證(Negotiate)將通過 Te.Service 驗證您的身份。
    • Te.Service 會透過確認您是否是遠端電腦上的管理員或本機 "Remote TAEF Users" 群組的成員,來對您進行授權。
  • Te.Service 會在 RemoteTests 底下建立目錄,其名稱與測試 dll 相同。
  • Te.exe 建置在遠端電腦上執行測試所需的檔案清單。 此清單包括:
    • 必要的 TAEF 二進位檔
    • 測試 dll 的所有原生和/或受控二進位相依性(不包括系統二進位檔)
    • 您在 /TestDependencies 參數中指定的任何其他檔案
  • Te.exe 會將測試相依性清單以及每個檔案的CCS傳送至Te.Service。
  • Te.Service 會尋找遠端電腦上的每個檔案,並比較 CRC 值。 任何相符項目都會從清單中移除,並將清單傳回用戶端。
  • 如果相依性清單中還剩下任何檔案,Te.exe 會將每個相依性傳送至Te.Service。
    • Te.Service 會將它們儲存在 <Te.Service 目錄>\RemoteTests\<test dll 名稱> 目錄中。
  • Te.exe 要求 Te.Service 使用正確的 用戶內容,在遠端電腦上啟動新的 Te.ProcessHost.exe 實例。
  • Te.exe 會連線到遠端 Te.ProcessHost.exe 實例,並開始執行測試。