一般測試疑難排解
當您執行一般測試時,可能會遭遇下列錯誤:在 64 位元平台上執行一般測試時,收集程式碼涵蓋範圍資料的功能無法運作。若要解決此錯誤,請使用下一節規避 32 位元限制中的詳細資訊。
需求
- Visual Studio Ultimate, Visual Studio Premium
規避 32 位元限制
程式碼涵蓋範圍檢測只能在 32 位元模式中運作,無法在 64 位元模式中運作。這是因為組件在做完程式碼涵蓋範圍的檢測之後,只能載入 32 位元模式。
注意事項 |
---|
當您在 64 位元電腦上執行單元測試時,如果不是在收集程式碼涵蓋範圍資料,就不會有這樣的限制。這是因為用來載入類別庫的測試引擎 VSTestHost.exe 是以 32 位元處理序執行的。 |
而對於一般測試而言,包裝的應用程式是建置為「任何 CPU」,它在 64 位元電腦上是以 64 位元處理序執行的。當這個 64 位元處理序嘗試載入 32 位元組件時,就會發生錯誤。您可以以下列方法之一解決此問題。
如果您的一般測試是將二進位檔案直接包裝至已編譯的實際執行程式碼 (Production Code),請使用下列方法:
- 將方案組態變更為 x86
如果一般測試與實際執行程式碼二進位檔案之間有一層 (Layer),請使用下列兩種方法之一。也就是您的一般測試將中繼應用程式包裝為測試控管。此測試控管接著會執行您所測試的實際執行程式碼。
- 變更載入實際執行程式碼二進位檔案之應用程式的建置設定
將方案組態變更為 x86
將方案組態由「任何 CPU」變更為「x86」。
變更方案組態
以滑鼠右鍵按一下方案,然後按一下 [屬性]。
[方案屬性頁] 對話方塊隨即出現。
在 [組態屬性] 下按一下 [組態]。
選擇 [組態管理員]。
[組態管理員] 對話方塊隨即出現。
在 [使用中的方案平台] 下按一下 [新增]。
[新增方案平台] 對話方塊隨即出現。
在 [輸入或選擇新平台] 下按一下 [x86]。
在 [新增方案平台] 對話方塊中,按一下 [確定]。
在詢問您是否儲存變更的對話方塊中,按一下 [是]。
在 [組態管理員] 對話方塊的 [使用中的方案平台] 下,確認 [x86] 已選取,然後按一下 [關閉]。
在 [屬性頁] 對話方塊中,按一下 [確定]。
變更載入實際執行程式碼二進位檔案之應用程式的建置設定
請使用此程序檢測您的一般測試所包裝的所有中繼應用程式或測試控管。此中繼應用程式會執行您要測試的程式碼。
在此程序中,您會變更媒介應用程式的設定,使其建置為 x86 平台。
注意事項 |
---|
只有在包裝的應用程式是由您方案中的專案所建置時才能執行此作業。 |
變更包裝的應用程式之建置設定
在 [方案總管] 中,以滑鼠右鍵按一下建置中繼應用程式的專案,然後按一下 [屬性]。
便會顯示該專案的屬性頁。
選取 [組建] 索引標籤。
在「平台目標」,指定 [x86]。
在 [檔案] 功能表上,按一下 [儲存選取項目]。