共用方式為


MSTest.exe 命令列選項

更新:2007 年 11 月

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

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

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

一般命令列選項

/testcontainer:[file name]

載入內含測試的檔案。

範例:/testcontainer:tests.dll

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

/testmetadata:[file name]

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

/testlist:[test list path]

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

/test:[test name]

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

/noisolation

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

/runconfig:[file name]

使用指定的執行組態檔。

範例:/runconfig:localtestrun.Testrunconfig

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

注意事項:

執行智慧型裝置單元測試時,您必須指定 /runconfig 選項。

/resultsfile:[file name]

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

範例:/resultsfile:testResults.trx

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

/unique

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

/detail:[property id]

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

/help

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

/nologo

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

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

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

/publish:[server name]

將結果發行至指定伺服器的作業存放區。

/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 選項,執行不同測試容器中的測試。

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

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

注意事項:

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

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

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

/testlist

/testlist:[test list path]

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

注意事項:

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

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

/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 處理序毀損。

/runconfig

/runconfig:[file name]

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

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

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

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

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

注意事項:

執行智慧型裝置單元測試時,您必須指定 /runconfig 選項。

/resultsfile

/resultsfile:[file name]

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

/unique

/unique

請將 /unique 選項與 /test 選項一併使用。/unique 選項會指示 MSTest.exe 只執行名稱與您利用 /test 選項所提供之值相符的單一測試。

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

命令列:

mstest /testcontainer:testproject2.dll /test:MethodTest1

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

但命令列:

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

只會執行 MethodTest1 這個測試。

/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,實際可用的選擇視您的測試類型而定,這個清單列出的只是大約的項目。尤其是當您使用 Team System 測試工具所含的測試類型以外的測試類型時,屬性的選擇更會不同。若想得知您可以使用哪些 propertyID,請檢查測試回合所產生的測試結果檔案。如需測試結果檔案的詳細資訊,請參閱 HOW TO:匯出測試結果

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

例如,命令列:

mstest /testcontainer:Errors.dll /detail:testtype

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

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

請參閱

工作

HOW TO:發行測試結果