共用方式為


MSTest.exe 命令列選項

MSTest.exe 是用於執行測試的命令列命令。 這個命令有許多選項,可以讓您自訂測試回合。 這些選項中有許多都能和其他選項合併使用。事實上,某些選項一定得和其他選項一起使用,如下列章節所述。 在 MSTest.exe 命令列上,可指定這些選項以任何順序出現。

MSTest.exe 解譯選項及選項值時並不區分大小寫。

下表列出了 MSTest.exe 的所有選項,以及選項的簡短描述。 在命令列輸入 MSTest /h 也能看到類似的摘要。

一般命令列選項

/testcontainer:[file name]

載入內含測試的檔案。

範例:/testcontainer:tests.dll

如需詳細資訊,請參閱 /testcontainer。

/testmetadata:[file name]

載入內含測試中繼資料的檔案。 如需詳細資訊,請參閱 /testmetadata。

/testlist:[test list path]

指定要執行的測試清單 (於中繼資料檔內指定)。 如需詳細資訊,請參閱 /testlist。

/category:[test category filter]

指定並篩選要執行的測試分類。 如需詳細資訊,請參閱 /category。

/test:[test name]

指定要執行的測試名稱。 如需詳細資訊,請參閱 /test。

/noisolation

在 MSTest.exe 處理序內執行測試。 選擇執行這項工作會提升測試回合的速度,但是會增加 MSTest.exe 處理序的風險。

/testsettings: [file name]

使用指定的測試設定檔。

範例:/testsettings:Local.Testsettings

如需詳細資訊,請參閱 /testsettings。

/runconfig:[file name]

使用指定的執行組態檔。

範例:/runconfig:localtestrun.Testrunconfig

如需詳細資訊,請參閱 /runconfig。

注意事項注意事項
提供此命令列選項的目的是為了達到舊版 Microsoft Visual Studio 2010 的相容性。測試回合組態已由 Visual Studio 2010 Ultimate 中的測試設定所取代。

/resultsfile:[file name]

將測試回合結果儲存到指定的檔案中。

範例:/resultsfile:testResults.trx

如需詳細資訊,請參閱 /resultsfile。

/unique

只有在指定的 /test 能找到唯一相符的結果時,才執行測試。 如需詳細資訊,請參閱 /unique。

/detail:[property id]

指定除了測試結果之外,您還想顯示其值的屬性名稱 (如果有的話)。 如需詳細資訊,請參閱 /detail。

/help

顯示 MSTest.exe 使用方式訊息 (簡短形式:/?/h)。

/nologo

不顯示程式啟始資訊及著作權訊息。

/usestderr

使用標準錯誤來輸出錯誤資訊。

發行測試結果的命令列選項

如需這些選項的詳細資訊,請參閱發行測試結果的命令列選項

/publish:[server name]

將結果發行至指定之伺服器 Team 專案集合的資料庫。

/publishresultsfile:[file name]

指定要發行的結果檔檔案名稱。 若未指定結果檔名,則使用目前回合所產生的檔案。

/publishbuild:[build id]

使用這個組建 ID 發行測試結果。

/teamproject:[team project name]

指定這個組建所屬之 Team 專案的名稱。

/platform:[platform]

指定要發行其測試結果之組建的平台。

/flavor:[flavor]

指定要發行其測試結果之組建的類別。

使用 MSTest 選項

下列章節將詳細描述 MSTest.exe 的許多選項。 此處並不包括發行測試結果所用的選項。 如需那些選項的詳細資訊,請參閱發行測試結果的命令列選項

/testcontainer

/testcontainer:[file name]

測試容器是一個包含您想執行之測試的檔案。 例如,如果是已排序的測試,測試容器即為定義已排序測試的 .orderedtest 檔案。 如果是單元測試,它便是從內含單元測試原始碼檔案之測試專案所建置的組件。

注意事項注意事項

如果是單元測試,這則是內含測試程式碼 (而非您正測試的應用程式程式碼) 的組件。 例如,如果您的方案中含有名為 BankAccount 的專案和對應的測試專案 BankAccountTest,請指定 /testcontainer:BankAccountTest.dll

注意事項注意事項

測試中繼資料檔案也會列出可以執行的測試,因此您不能在單一命令列上同時指定 /testcontainer/testmetadata 選項。 這麼做會造成混淆並產生錯誤。

/testmetadata

/testmetadata:[file name]

您可以使用 /testmetadata 選項,執行不同測試容器中的測試。

使用 [測試清單編輯器] 視窗建立測試清單時,將會建立方案的測試中繼資料檔。 這個檔案包含 [測試清單編輯器] 視窗所列之所有測試的詳細資訊, 這些即為您方案中所有測試專案內的所有測試。

測試中繼資料檔是在方案資料夾中所建立的 XML 檔案。 這個檔案會顯示在方案總管的 [方案項目] 節點底下。 測試中繼資料檔案具有副檔名 .vsmdi,且與 [測試清單編輯器] 視窗相關聯。 也就是說,如果您在 [Windows 檔案總管] 中按兩下 .vsmdi 檔案,它便會開啟 Visual Studio 及其內容。 方案之測試專案中的所有測試,都會顯示在 [測試清單編輯器] 視窗中。

只有進行反映在 [測試清單編輯器] 視窗中的變更 (例如建立或刪除測試,或是變更測試的屬性) 時,才能變更測試中繼資料檔。

注意事項注意事項

由於測試容器含有您能執行的測試,因此您不能在單一命令列上同時指定 /testcontainer/testmetadata 選項。 這麼做會造成混淆並產生錯誤。

當您使用 /testmetadata 選項時,建議您利用 /test 選項或 /testlist 選項 (或是兩者都使用) 指定要執行的特定測試。

/testlist

/testlist:[test list path]

/testlist 選項會列出要執行的測試清單 (在測試中繼資料檔指定)。 若要執行位於數個測試清單中的測試,請使用 /testlist 選項數次。 測試清單中任何已排序的測試便會執行。

注意事項注意事項

使用 /testlist 選項時,必須同時使用 /testmetadata 選項。

您可以同時使用 /testlist 選項和 /test 選項。 其效果和在 [測試清單編輯器] 視窗中選取一份測試清單,並選取一或多項個別測試,然後按一下 [執行測試] 相同。

/category

/category:[test category filter]

使用 /category 選項可以指定要執行的測試分類。

注意事項注意事項

您必須使用 /testcontainer 選項,才可以使用 /category 選項。

每個命令列只能使用 /category 選項一次,但是您可以利用測試分類篩選條件來指定多個測試分類。 測試分類篩選條件包括由邏輯運算子 '&'、'|'、'!'、'&!' 分隔的一個或多個測試分類名稱。 邏輯運算子 '&' 和 '|' 無法一起用來建立測試分類篩選條件。

例如:

  • /category:group1 會執行測試分類 "group1" 中的測試。

  • /category:"group1&group2" 會執行同時位於測試分類 "group1" 和 "group2" 中的測試。將不會執行僅位於其中一個所指定測試分類中的測試。

  • /category:"group1|group2" 會執行位於測試分類 "group1" 或 "group2" 中的測試。 同時位於兩個測試分類中的測試也將被執行。

  • /category:"group1&!group2" 會執行來自測試分類 "group1" 而不在測試分類 "group2" 中的測試。將不會執行同時位於測試分類 "group1" 和 "group2" 中的測試。

    注意事項注意事項

    如果您的篩選條件由單一分類 (例如,/category:group1) 組成,則您不必將篩選條件加上引號。 然而,如果您的篩選條件參考多個分類 (例如,/category:"group1&group2"),則必須將篩選條件加上引號。

/test

/test:[test name]

使用 /test 選項可以指定個別測試來執行。 若要執行數個測試,請使用 /test 選項數次。

注意事項注意事項

您可以使用 /test 選項加上 /testcontainer 選項或 /testmetadata 選項,但不能兩個都加。

您可以同時使用 /testlist 選項和 /test 選項。 其效果和在 [測試清單編輯器] 視窗中選取一份測試清單,並選取一或多項個別測試,然後按一下 [執行測試] 相同。

利用 /test 選項指定的字串,會和測試容器或測試中繼資料檔中測試的名稱做比對。 這表示您可以利用單一個 /test 的值指定數個測試。 例如,指定 /test:ittest 會產生與名為 DebitTest 和 CreditTest 之測試相符的項目,因為這兩個測試名稱都含有子字串 'ittest'。

注意事項注意事項

您利用 /test 選項所指定的值不只會針對測試名稱做測試,也會針對測試的路徑做測試,如在 [方案總管] 中所見;如果是單元測試,則會針對其完整名稱做測試。

以下是兩個使用方式的範例:

單元測試範例:TestProject2 專案的 UnitTest1.cs 檔案含有名為 TestMethod1 的單元測試。 將 /test 選項的值指定為 'ittest' 也會和這個測試相符,因為此字串會針對完整名稱 "TestProject2.UnitTest1.TestMethod1" 做測試,'ittest' 字串也會出現在 'UnitTest1' 中。

一般測試範例:下列命令列會執行指定的一般測試,並在測試結果中顯示測試的完整路徑。

mstest /testcontainer:"C:\Documents and Settings\<user name>\My Documents\Visual Studio\Projects\TestProject2\TestProject2\generictest1.generic" /test:testproject32\generic

/noisolation

/noisolation

使用這個選項可以在 MSTest.exe 處理序內執行測試。 使用此選項並不會導致測試回合組態產生其他變更。 這個選項的目的是要提升測試回合的速度。 不過,它會增加測試回合的整體風險,因為如果測試程式碼擲回未處理的例外狀況 (Exception),可能會導致 MSTest.exe 處理序毀損。

/testsettings

/testsettings:[file name]

使用這個選項指定測試設定檔。 例如:/testsettings:local.Testsettings

您可以利用其他方式指定測試設定檔,例如使用 /testmetadata 選項。 管轄測試設定檔規格的規則將在此處描述。

  • 如果使用 /testsettings 選項,則會使用它所指定的檔案,無論您是否也使用 /testmetadata 選項。

  • 如果您使用 /testmetadata 選項指向一個中繼資料檔 (此檔案指定一個作用中的測試設定檔),且如果您未使用 /testsettings 選項,便會使用該測試設定檔。

  • 如果您未使用 /testsettings 選項,且未在測試中繼資料檔中指定測試設定檔,則測試回合會使用預設的測試設定檔。

    注意事項注意事項

    如需測試設定檔的詳細資訊,請參閱將自動化測試的測試設定建立成測試計劃的一部分

/runconfig

/runconfig:[file name]

注意:提供此命令列選項的目的是為了達到舊版 Microsoft Visual Studio 2010 的相容性。 測試回合組態已由 Visual Studio 2010 Ultimate 中的測試設定所取代。

使用這個選項指定回合組態檔。 例如:/runconfig:localtestrun.Testrunconfig

您可以利用其他方式指定回合組態檔,例如使用 /testmetadata 選項。 管轄回合組態檔規格的規則將在此處描述。

  • 如果使用 /runconfig 選項,則會使用它所指定的檔案,無論您是否也使用 /testmetadata 選項。

  • 如果您使用 /testmetadata 選項指向一個中繼資料檔 (此檔案指定一個作用中的回合組態檔),且如果您未使用 /runconfig 選項,便會使用該回合組態檔。

  • 如果您未使用 /runconfig 選項,且未在測試中繼資料檔中指定回合組態檔,則測試回合會使用預設的回合組態檔。

/resultsfile

/resultsfile:[file name]

使用這個選項將測試回合結果儲存到具名檔案中。 例如:/resultsfile:testResults.trx。

/unique

/unique

請將 /unique 選項與 /test 選項一併使用。 /unique 選項會指示只有在您使用 /test 選項所提供的值有唯一相符項目時,MSTest.exe 才執行測試。

例如,測試容器 MyTestProject 中含有名為 MethodTest1 及 MethodTest10 的測試。

命令列:

mstest /testcontainer:testproject2.dll /test:MethodTest1

會執行 MethodTest1 和 MethodTest10 這兩個測試,因為 'MethodTest1' 是 'MethodTest10' 的子字串。

但命令列:

mstest /testcontainer:testproject2.dll /test:MethodTest1 /unique

顯示錯誤,表示沒有這個測試名稱的唯一相符項目。 您可以使用測試的 [屬性] 檢視中列出的測試 ID,唯一識別測試名稱。

/usestderr

/usestderr

使用這個選項,會讓下列資訊寫入標準錯誤:

  • 測試的結果為「失敗」、「已中止」、「錯誤」、「逾時」、「無法執行」或「未執行」。

  • 執行層級錯誤。

  • 剖析命令列引數時發生錯誤。

  • 測試回合出現失敗結果時的回合摘要。

不使用此選項時,所有輸出會傳送至標準輸出。

/detail

/detail:[property id]

這個選項可用來顯示額外的測試案例屬性 (如果有的話)。 您可以在單一命令列上傳遞 /detail 選項的多個執行個體,每個執行個體都只具有一個屬性 ID。 /detail 選項的有效屬性 ID 如下:

adapter

id

projectrelativepath

computername

isautomated

readonly

debugtrace

link

spoolmessage

description

longtext

stderr

displaytext

name

stdout

duration

outcometext

storage

errormessage

owner

testcategoryid

errorstacktrace

parentexecid

testname

executionid

priority

testtype

groups

projectname

traceinfo

注意事項注意事項

可以搭配 /detail 選項使用的屬性 ID,實際可用的選擇視您的測試類型而定。 這個清單列出的只是大約的項目。 尤其是當您使用自訂測試類型時,屬性的選擇更會不同。 若想得知您可以使用哪些 propertyID,請檢查測試回合所產生的測試結果檔案。 如需測試結果檔案的詳細資訊,請參閱 HOW TO:在 Visual Studio 中儲存和開啟測試結果

如果指定的測試案例具有某個屬性,其資訊便會包括在輸出結果摘要中。

例如,命令列:

mstest /testcontainer:Errors.dll /detail:testtype

會產生下列輸出,其中包含測試類型資訊:

...
Results                    Top Level Tests
--------                   -----------------
Inconclusive               TestProject2.BankAccountTest.CreditTest
[testtype] = Unit Test
...

請參閱

概念

檢閱測試結果

從命令列執行自動化的測試