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。
|
||
/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...