跨架構執行
TAEF 支援使用相同命令列從不同架構執行測試的能力,前提是執行測試的 OS 支援它們。 這表示 x64 和 x86 測試 (x64 OS) 可以使用單一 'te.exe' 命令列來執行。
先決條件
若要針對與 'te.exe' 本身不同的架構執行測試,該架構的 TAEF 二進位檔必須可供 「te.exe」使用。 目標架構可以是下列任一項:
- x86
- x64
- ia64
TAEF 會針對目標架構尋找名為 的資料夾,相對於該架構的 TAEF 二進位檔的原始 'te.exe'。
執行不同架構的測試
執行不同架構的測試不需要額外的組態,只要將指定的 DLL 當做參數傳遞至 'te.exe'。 TAEF 會檢查二進位檔以識別其目標架構,並具現化正確的主機進程,以載入和執行測試。 例如,x86 'te.exe' 可以檢查 x64 測試 DLL,並啟動 x64 進程來執行測試:
c:\taef\x86 > te x64\Scenario.Tests.dll
由於 'te.exe' 命令列可以採用多個測試 DLL,因此您可以混合架構,而 TAEF 會為指定的測試 DLL 選擇正確的主機進程:
c:\taef\x86 > te x64\Scenario.Tests.dll x86\Scenario.Tests.dll x64\UI.Tests.dll
這可讓 TAEF 使用者從單一命令列取得更多測試涵蓋範圍,所有結果都會匯總到單一記錄中。 如果沒有這項功能,每個架構的測試都必須一起提取到自己的命令列,個別執行,並結合每個回合的結果。
例如,如果指定的測試檔案 不是 架構特定的 (,編譯為純 IL) 的 C# 二進位檔,則會使用與傳遞至的 'te.exe' 相同的架構來執行。
依架構選取測試
TAEF 會自動將「架構」中繼資料套用至需要特定架構的測試檔案。 「架構」中繼資料的值是執行測試所需的架構,而且會是下列其中一項:
- x86
- x64
- ia64
若要選取特定架構的測試,您可以使用選取語言來比對 「架構」中繼資料。 例如,如果 'Tests' 資料夾包含 x86 和 x64 測試檔案的混合,則下列命令列只會執行 x64 測試:
c:\taef\x86 > te Tests\*.Tests.dll /select: @Architecture= 'x64'
錯誤
將針對不同架構編譯的測試檔案傳遞給 TAEF,而不需要所需的目標架構二進位檔,將會導致錯誤訊息。 下列範例顯示嘗試執行 x64 測試的 x86 'te.exe',而不需要填入必要二進位檔的 'x64' 子資料夾:
c:\>te x64\Scenario.Tests.dll
Test Authoring and Execution Framework v2.2 Build 6.1.7689.0 (release.091218-1251) for x86
Error: Please copy all x64 TAEF binaries to the 'c:\taef\x86\x64' directory in order to run x64 tests from this process.
Error: Failed to create the ProcessHostController. TE.ProcessHost.exe may be unavailable. Terminating execution...
Error: No test cases were executed.