共用方式為


一般測試疑難排解

更新:2007 年 11 月

當您執行一般測試時,可能會遭遇下列錯誤:在 64 位元平台上執行一般測試時,收集程式碼涵蓋範圍資料的功能無法運作。若要解決此錯誤,請使用下一節規避 32 位元限制中的詳細資訊。

規避 32 位元限制

程式碼涵蓋範圍檢測只能在 32 位元模式中運作,無法在 64 位元模式中運作。這是因為組件在做完程式碼涵蓋範圍的檢測之後,只能載入 32 位元模式。

注意事項:

當您在 64 位元電腦上執行單元測試時,如果不是在收集程式碼涵蓋範圍資料,就不會有這樣的限制。這是因為用來載入類別庫的測試引擎 VSTestHost.exe 是以 32 位元處理序執行的。

而對於一般測試而言,包裝的應用程式是建置為「任何 CPU」,它在 64 位元電腦上是以 64 位元處理序執行的。當這個 64 位元處理序嘗試載入 32 位元組件時,就會發生錯誤。您可以以下列方法之一解決此問題。

如果您的一般測試是將二進位檔案直接包裝至已編譯的實際執行程式碼 (Production Code),請使用下列方法:

  • 將方案組態變更為 x86

如果一般測試與實際執行程式碼二進位檔案之間有一層 (Layer),請使用下列兩種方法之一。也就是您的一般測試將中繼應用程式包裝為測試控管。此測試控管接著會執行您所測試的實際執行程式碼。

  • 檢測載入實際執行程式碼二進位檔案的應用程式

  • 變更載入實際執行程式碼二進位檔案之應用程式的建置設定

將方案組態變更為 x86

將方案組態由「任何 CPU」變更為「x86」。

變更方案組態

  1. 以滑鼠右鍵按一下方案,然後按一下 [屬性]。

    [方案屬性頁] 對話方塊隨即出現。

  2. 在 [組態屬性] 下按一下 [組態]。

  3. 按一下 [組態管理員]。

    [組態管理員] 對話方塊隨即出現。

  4. 在 [使用中的方案平台] 下按一下 [新增]。

    [新增方案平台] 對話方塊隨即出現。

  5. 在 [輸入或選擇新平台] 下按一下 [x86]。

  6. 在 [新增方案平台] 對話方塊中,按一下 [確定]。

  7. 在詢問您是否儲存變更的對話方塊中,按一下 [是]。

  8. 在 [組態管理員] 對話方塊的 [使用中的方案平台] 下,確認 [x86] 已選取,然後按一下 [關閉]。

  9. 在 [屬性頁] 對話方塊中,按一下 [確定]。

檢測載入實際執行程式碼二進位檔案的應用程式

請使用此程序檢測您的一般測試所包裝的中繼應用程式或測試控管。此中繼應用程式會執行您要測試的程式碼。這會強制應用程式以 32 位元模式執行。

注意事項:

此程序只有在符號檔可供您檢測的檔案使用時才會運作。

指定檢測的可執行檔

  1. 在 Visual Studio 中開啟包含您的一般測試的測試專案。

  2. 在 [方案總管] 中,開啟 [方案項目] 資料夾。

  3. 在 [方案項目] 資料夾中,按兩下 .testrunconfig 檔案。

  4. [測試回合組態] 對話方塊隨即出現。

  5. 按一下 [程式碼涵蓋範圍]。

  6. 在 [選取要檢測的成品] 下,選取執行您的實際執行程式碼二進位檔案的中繼應用程式。

    注意事項:

    如果 [選取要檢測的成品] 下沒有顯示中繼應用程式的二進位檔案,請按一下 [加入組件]。在 [選擇要進行檢測的組件] 對話方塊中指定檔案,然後按一下 [開啟]。

  7. 按一下 [套用],然後按一下 [關閉]。

變更載入實際執行程式碼二進位檔案之應用程式的建置設定

請使用此程序檢測您的一般測試所包裝的所有中繼應用程式或測試控管。此中繼應用程式會執行您要測試的程式碼。

在此程序中,您會變更媒介應用程式的設定,使其建置為 x86 平台。

注意事項:

只有在包裝的應用程式是由您方案中的專案所建置時才能執行此作業。

變更包裝的應用程式之建置設定

  1. 在 [方案總管] 中,以滑鼠右鍵按一下建置中繼應用程式的專案,然後按一下 [屬性]。

    便會顯示該專案的屬性頁。

  2. 按一下 [建置] 索引標籤。

  3. 在「平台目標」,指定 [x86]。

  4. 在 [檔案] 功能表上,按一下 [儲存選取項目]。

請參閱

工作

HOW TO:使用一般測試蒐集程式碼涵蓋範圍的資料