共用方式為


HOW TO:停用和啟用測試

更新:2007 年 11 月

當您執行的測試群組中含有某個測試時,可以停用此測試,使其暫時無法使用。您隨時都能重新啟用此測試。但是為什麼要停用測試?您可以考量下列可能性:

  • 產品組建含有足以造成當機的 Bug。這個 Bug 位於其中一個測試所實行的程式碼中。這項測試是循序執行的許多測試之一。由於這項測試會間接觸發當機,因此您的測試回合在序列中無法通過此測試。解決方式是在損毀的程式碼部分記錄 Bug,並在 Bug 修復之前,先停用此測試。接下來,測試序列即可跳過該測試,繼續執行下去。

  • 在測試回合中特定的測試發現了 Bug,並加以記錄。若要避免每次執行選取範圍的測試時,重複發現同一個已知的錯誤,便可停用該測試。

    注意事項:

    關聯的 Bug 修正之後,請記得重新啟用此測試。

如果您所執行的測試清單中含有停用的測試,則該測試清單內只有啟用的測試 (若有的話) 會執行。如果測試清單中不含任何已啟用的測試,該測試清單本身會被停用。

在單元測試中使用 Ignore 屬性

使用 Ignore 屬性說明如何使用 IgnoreAttribute 屬性 (Attribute) 來標示單元測試方法。使用這個屬性會改變測試的可用性,但它和其他停用和啟用測試的方法不同,如下:

  • 如停用測試和啟用測試所述,您可以使用測試清單編輯器來停用和啟用任何類型的測試。但是 Ignore 屬性只能用於測試方法。這表示您只能對單元測試套用 Ignore 屬性。

  • 啟用和停用測試的旗標會儲存在測試中繼資料 (Metadata) 檔案中。

  • 單元測試的 Ignore 屬性則位於單元測試的原始程式檔 (Source File) 中,與測試的其他屬性和原始程式碼一併存在。這表示,如果您在測試清單編輯器中停用某個單元測試,稍後又使用 MSTest.exe 命令列公用程式執行此測試,這個測試仍會執行。但若您利用 Ignore 屬性標示某個單元測試,然後編譯組件,再使用 MSTest.exe 執行測試,則這個測試並不會執行。原因是 Ignore 屬性已經成為測試的一部分了,所以不會執行測試。

這兩種方式適合用在不同的案例中:

  • Ignore 屬性。您是一位開發人員,負責撰寫實際執行程式碼和測試程式碼。您想進行大量變更且正進行到中途,但知道其中一個單元測試會壞掉一陣子。因此當您簽入此測試時,會利用 Ignore 屬性標示指出您不預期這個測試會有作用。

  • 停用和啟用。您在組建實驗室工作,而且不具有正在執行之測試原始程式碼的存取權。在這個案例中,您只能使用測試清單編輯器的啟用和停用功能。

停用測試

若要停用測試

  • 若要停用單一測試,請在測試清單編輯器中,以滑鼠右鍵按一下已啟用的測試,再按一下 [停用]。若要停用數個測試,請在按一下測試的資料列時同時按下 CTRL 或 SHIFT,以反白顯示您想停用的已啟用測試。接下來請以滑鼠右鍵按一下選取的資料列,然後按一下 [停用]。

    - 或 -

    在測試清單編輯器或 [測試檢視] 視窗中選取測試,然後按 F4,顯示 [屬性] 視窗。然後將 [測試已啟用] 屬性設為 False。

啟用測試

若要啟用測試

  • 若要啟用單一測試,請在測試清單編輯器中,以滑鼠右鍵按一下已停用的測試,再按一下 [啟用]。若要啟用數個測試,請在按一下測試的資料列時同時按下 CTRL 或 SHIFT,以反白顯示想啟用的已停用測試。接著請以滑鼠右鍵按一下選取的資料列,然後按一下 [啟用]。

    - 或 -

    在測試清單編輯器或 [測試檢視] 視窗中選取測試,然後按 F4,顯示 [屬性] 視窗。然後將 [測試已啟用] 屬性設為 True。

使用 Ignore 屬性

若要使用 Ignore 屬性

  1. 開啟單元測試以編輯其原始程式碼。若要進行這項操作,請在測試清單編輯器中按兩下單元測試。

    單元測試所在的原始程式檔隨即開啟。

  2. IgnoreAttribute 屬性加入至單元測試中。

    此測試便會停用。在 [屬性] 視窗中,[測試已啟用] 屬性會自動設為 False。若想詳細得知這個動作的範圍,請參閱前一個章節<在單元測試中使用 Ignore 屬性>。

    若要重新啟用測試,請刪除 Ignore 屬性或將它標記為註解。

請參閱

工作

HOW TO:執行選取的測試

參考

IgnoreAttribute