Visual Studio單元測試命令列方式之----NUnit-Console.exe命令
本文為 Dennis Gao 原創或翻譯技術文章,發表於部落格園部落格,未經作者本人允許禁止任何形式的轉載。
NUnit-Console 命令列選項
指定執行哪些測試用例
執行指定程式集中的所有測試用例
nunit-console 命令列需要指定一個或多個檔案方可執行。控制檯程式會建立一個 XML 格式的測試執行結果。預設的測試結果檔名為 TestResult.xml,放置在工作目錄中。
控制檯程式必須指定一個程式集或者工程檔案。
如果要執行 nunit.tests.dll 程式集中包含的測試用例,可使用下面的命令列:
nunit-console nunit.tests.dll
如果需要通過 Visual Studio 工程檔案執行 nunit.tests.dll 中的的測試,可使用:
nunit-console nunit.tests.csproj
如果需要通過自定義的 NUnit 測試工程來運行同樣的測試,可使用:
nunit-console nunit.tests.nunit
執行指定程式集中指定的測試用例
可以通過 /run 選項指定測試的全名稱來執行程式集中的某個測試用例。
nunit-console /run:NUnit.Tests.AssertionTests nunit.tests.dll
被執行測試的名稱可以是一個測試用例、測試 Fixture 或者名空間。
也可以通過使用逗號分隔來指定多個測試。例如:
nunit-console /run:NUnit.Tests.AssertionTests,NUnit.Tests.ConstraintTests nunit.tests.dll
/fixture 選項已經被宣告為棄用,可以使用 /run 選項來代替。
通過單獨的檔案來指定執行測試列表
可以通過建立一個包含需要執行的測試列表的檔案,使用 /runlist 選項來執行測試:
nunit-console /runlist:testlist.txt nunit.tests.dll
"testlist.txt" 檔案中包含了每個測試的全名稱,每行列舉一個測試。被執行測試的名稱可以是一個測試用例、測試 Fixture 或者名空間。
行首為 "#" 字元的為註釋。
指定多個程式集
通過控制檯命令列介面,可以在一次執行中指定執行多個程式集中的測試。例如:
nunit-console assembly1.dll assembly2.dll assembly3.dll
注:可以指定多個程式集檔案,但是不支援多個 NUnit 或 Visual Studio 工程檔案。
預設情況下,每個程式集中會在單獨的 AppDomain 中執行。可以通過 /domain 選項來設定。
指定執行的 Configuration
可以通過 /config 選項控制測試執行的 Configuration。
nunit-console nunit.tests.csproj /config:Release
注:如果是直接載入程式集,則此選項無效。
通過測試類別 Category 來 Include 或 Exclude 測試
NUnit 通過 CategoryAttribute 屬性來指定測試所屬的類別。可以通過 /include 和 /exclude 選項來選擇包含或排除指定的類別 Category。
下面的命令只執行 BaseLine 類別中的測試:
nunit-console myassembly.dll /include:BaseLine
下面的命令會執行除了 Database 類別外的所有測試:
nunit-console myassembly.dll /exclude:Database
從 NUnit 2.4.6 版本開始,可以在 /include 或 /exclude 中使用 Category 表示式。下面的表格中為一些示例:
注:通過上面的例子可以看出,逗號和 "|" 擁有相同涵義,但逗號的優先順序更高。
優先順序順序為:
- - 用於排除
- , 高優先順序的或操作
- + 與操作
- | 低優先順序的或操作
控制測試執行
指定 .NET Framework 版本
大多數應用程式都在某個特定版本的 CLR 下執行。少數的設計為可以在多版本下均可執行。不管哪種情況,為測試指定執行的 CLR 版本是非常重要的。
通過使用 /framework 選項可以指定執行時的版本。如果指定的版本與 NUnit 使用的版本不同,則測試將在一個獨立的程序中被執行。
nunit-console myassembly.dll /framework:net-4.0
控制程序的使用
通過 /process 選項可以控制 NUnit 如何在程序中載入測試。
- Single :所有的測試執行在 nunit-console 程序中。預設選項。
- Separate :建立單獨的程序中執行測試。
- Multiple :為每個程式集 Assembly 建立獨立的程序執行測試。
控制 AppDomain 的使用
通過 /domain 選項可以控制執行測試所在的 AppDomain。
- None :不建立任何 AppDomain,所有測試執行在 Primary Domain 中。通常需要將 NUnit 程式集拷貝至工作目錄。
- Single :建立新的 AppDomain 來執行測試。
- Multiple :為每個程式集 Assembly 建立獨立的 AppDomain。
如果在命令列中列舉了多個程式集,則預設選項為 Multiple。否則為 Single 選項。
控制 Apartment 的使用
通過 /apartment 選項可以指定執行測試執行緒的 ApartmentState (STA 或 MTA)。預設為 MTA。
指定超時時長
通過 /timeout 選項可以指定一個 int 值來設定執行測試的超時時長。如果任何測試超過了指定的超時時長,則該測試將被取消執行並同時報告一個錯誤資訊。
也可以使用 TimeoutAttribute 屬性來指定超時時長。
注:如果未使用該選項,則無超時限制。
控制測試的輸出
重定向輸出
通常在控制檯顯示的輸出可以重定向到一個檔案。
下面的命令將標準輸入重定向到 TestResult.txt 檔案:
nunit-console nunit.tests.dll /out:TestResult.txt
下面的命令將標準錯誤重定向到 StdErr.txt 檔案:
nunit-console nunit.tests.dll /err:StdErr.txt
對測試輸出進行標記
每個測試的輸出會跟在前一個測試的輸出之後。可以使用 /labels 選項建立一個標識,在每個測試輸出的開始處顯示。
指定 XML 結果檔名
控制檯程式會建立一個 XML 形式的測試結果。可以使用 /result 將輸出檔名改為 "console-test.xml":
nunit-console /result:console-test.xml nunit.tests.dll
可以使用 /noresult 選項禁止 XML 輸出。
注:為了相容早起版本,NUnit 2.6 版本仍然可識別 /xml 和 /noxml 選項。
指定輸出的目錄
預設情況下,所有的輸出檔案都被建立在當前工作目錄。可以通過 /work 選項來指定具體的位置。
例如,下面的命令將會使 TestResult.xml 和 Output.txt 檔案在 "results" 目錄中被建立。
nunit-console /work:results /out:Output.txt nunit.tests.dll
參考資料
本文為 Dennis Gao 原創或翻譯技術文章,發表於部落格園部落格,未經作者本人允許禁止任何形式的轉載。
本文為 Dennis Gao 原創或翻譯技術文章,發表於部落格園部落格,未經作者本人允許禁止任何形式的轉載。
NUnit-Console 命令列選項
指定執行哪些測試用例
執行指定程式集中的所有測試用例
nunit-console 命令列需要指定一個或多個檔案方可執行。控制檯程式會建立一個 XML 格式的測試執行結果。預設的測試結果檔名為 TestResult.xml,放置在工作目錄中。
控制檯程式必須指定一個程式集或者工程檔案。
如果要執行 nunit.tests.dll 程式集中包含的測試用例,可使用下面的命令列:
nunit-console nunit.tests.dll
如果需要通過 Visual Studio 工程檔案執行 nunit.tests.dll 中的的測試,可使用:
nunit-console nunit.tests.csproj
如果需要通過自定義的 NUnit 測試工程來運行同樣的測試,可使用:
nunit-console nunit.tests.nunit
執行指定程式集中指定的測試用例
可以通過 /run 選項指定測試的全名稱來執行程式集中的某個測試用例。
nunit-console /run:NUnit.Tests.AssertionTests nunit.tests.dll
被執行測試的名稱可以是一個測試用例、測試 Fixture 或者名空間。
也可以通過使用逗號分隔來指定多個測試。例如:
nunit-console /run:NUnit.Tests.AssertionTests,NUnit.Tests.ConstraintTests nunit.tests.dll
/fixture 選項已經被宣告為棄用,可以使用 /run 選項來代替。
通過單獨的檔案來指定執行測試列表
可以通過建立一個包含需要執行的測試列表的檔案,使用 /runlist 選項來執行測試:
nunit-console /runlist:testlist.txt nunit.tests.dll
"testlist.txt" 檔案中包含了每個測試的全名稱,每行列舉一個測試。被執行測試的名稱可以是一個測試用例、測試 Fixture 或者名空間。
行首為 "#" 字元的為註釋。
指定多個程式集
通過控制檯命令列介面,可以在一次執行中指定執行多個程式集中的測試。例如:
nunit-console assembly1.dll assembly2.dll assembly3.dll
注:可以指定多個程式集檔案,但是不支援多個 NUnit 或 Visual Studio 工程檔案。
預設情況下,每個程式集中會在單獨的 AppDomain 中執行。可以通過 /domain 選項來設定。
指定執行的 Configuration
可以通過 /config 選項控制測試執行的 Configuration。
nunit-console nunit.tests.csproj /config:Release
注:如果是直接載入程式集,則此選項無效。
通過測試類別 Category 來 Include 或 Exclude 測試
NUnit 通過 CategoryAttribute 屬性來指定測試所屬的類別。可以通過 /include 和 /exclude 選項來選擇包含或排除指定的類別 Category。
下面的命令只執行 BaseLine 類別中的測試:
nunit-console myassembly.dll /include:BaseLine
下面的命令會執行除了 Database 類別外的所有測試:
nunit-console myassembly.dll /exclude:Database
從 NUnit 2.4.6 版本開始,可以在 /include 或 /exclude 中使用 Category 表示式。下面的表格中為一些示例:
注:通過上面的例子可以看出,逗號和 "|" 擁有相同涵義,但逗號的優先順序更高。
優先順序順序為:
- - 用於排除
- , 高優先順序的或操作
- + 與操作
- | 低優先順序的或操作
控制測試執行
指定 .NET Framework 版本
大多數應用程式都在某個特定版本的 CLR 下執行。少數的設計為可以在多版本下均可執行。不管哪種情況,為測試指定執行的 CLR 版本是非常重要的。
通過使用 /framework 選項可以指定執行時的版本。如果指定的版本與 NUnit 使用的版本不同,則測試將在一個獨立的程序中被執行。
nunit-console myassembly.dll /framework:net-4.0
控制程序的使用
通過 /process 選項可以控制 NUnit 如何在程序中載入測試。
- Single :所有的測試執行在 nunit-console 程序中。預設選項。
- Separate :建立單獨的程序中執行測試。
- Multiple :為每個程式集 Assembly 建立獨立的程序執行測試。
控制 AppDomain 的使用
通過 /domain 選項可以控制執行測試所在的 AppDomain。
- None :不建立任何 AppDomain,所有測試執行在 Primary Domain 中。通常需要將 NUnit 程式集拷貝至工作目錄。
- Single :建立新的 AppDomain 來執行測試。
- Multiple :為每個程式集 Assembly 建立獨立的 AppDomain。
如果在命令列中列舉了多個程式集,則預設選項為 Multiple。否則為 Single 選項。
控制 Apartment 的使用
通過 /apartment 選項可以指定執行測試執行緒的 ApartmentState (STA 或 MTA)。預設為 MTA。
指定超時時長
通過 /timeout 選項可以指定一個 int 值來設定執行測試的超時時長。如果任何測試超過了指定的超時時長,則該測試將被取消執行並同時報告一個錯誤資訊。
也可以使用 TimeoutAttribute 屬性來指定超時時長。
注:如果未使用該選項,則無超時限制。
控制測試的輸出
重定向輸出
通常在控制檯顯示的輸出可以重定向到一個檔案。
下面的命令將標準輸入重定向到 TestResult.txt 檔案:
nunit-console nunit.tests.dll /out:TestResult.txt
下面的命令將標準錯誤重定向到 StdErr.txt 檔案:
nunit-console nunit.tests.dll /err:StdErr.txt
對測試輸出進行標記
每個測試的輸出會跟在前一個測試的輸出之後。可以使用 /labels 選項建立一個標識,在每個測試輸出的開始處顯示。
指定 XML 結果檔名
控制檯程式會建立一個 XML 形式的測試結果。可以使用 /result 將輸出檔名改為 "console-test.xml":
nunit-console /result:console-test.xml nunit.tests.dll
可以使用 /noresult 選項禁止 XML 輸出。
注:為了相容早起版本,NUnit 2.6 版本仍然可識別 /xml 和 /noxml 選項。
指定輸出的目錄
預設情況下,所有的輸出檔案都被建立在當前工作目錄。可以通過 /work 選項來指定具體的位置。
例如,下面的命令將會使 TestResult.xml 和 Output.txt 檔案在 "results" 目錄中被建立。
nunit-console /work:results /out:Output.txt nunit.tests.dll
參考資料
本文為 Dennis Gao 原創或翻譯技術文章,發表於部落格園部落格,未經作者本人允許禁止任何形式的轉載。
出處:https://www.cnblogs.com/gaochundong/p/nunit_console_command_line_options.html