2016-10-17 131 views
0

所以我想運行一個由TeamCity觸發的powershell腳本來運行特定的單元測試,這些腳本是基於每個github提交時更改的文件的名稱。Nunit控制檯轉輪沒有運行任何測試

這裏是我如何在命令行中運行它:

C:\MyFolder\bin\NUnit.ConsoleRunner.3.4.1\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" --test="MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest" 

不過我老覺得,運行時,它只是從來沒有運行任何測試:

NUnit Console Runner 3.4.1 
Copyright (C) 2016 Charlie Poole 

Runtime Environment 
    OS Version: Microsoft Windows NT 10.0.14393.0 
    CLR Version: 4.0.30319.42000 

Test Files 
    MyFolder\Bin\UnitTesting.dll 

Test Filters 
    Test: MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest 


Run Settings 
    WorkDirectory: C:\Users\Me 
    ImageRuntimeVersion: 4.0.30319 
    ImageTargetFrameworkName: .NETFramework,Version=v4.0 
    ImageRequiresX86: False 
    ImageRequiresDefaultAppDomainAssemblyResolver: False 
    NumberOfTestWorkers: 2 

Test Run Summary 
    Overall result: Passed 
    Test Count: 0, Passed: 0, Failed: 0, Inconclusive: 0, Skipped: 0 
    Start time: 2016-10-17 20:28:43Z 
    End time: 2016-10-17 20:28:43Z 
    Duration: 0.303 seconds 

Results (nunit3) saved as TestResult.xml 

現在,當我運行沒有這樣的--test命令:

C:\MyFolder\bin\NUnit.ConsoleRunner.3.4.1\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" 

它運行我們每個單元測試,但我不想運行它們所有這些,我都想運行特定的快速程序,並且只在運行階段/生產服務器時運行大型程序,因此我們的開發人員在每次提交內容時不必等待15到20分鐘。

一些額外的信息:我使用這個 -My命名空間是

MyFolder.QuickTests.DaoTests.ProductDaoTests

我調用類是:

ProductBasicTest

某些名稱(如文件夾目錄)已更改,因爲它們是文件目錄的%teamcity%佔位符。

我做錯了什麼不能運行特定的測試?

由於某種原因,我的nunit控制檯無法識別/ run命令或/ fixture或--test =。

編輯:

我升級到3.5.0和我仍然得到同樣的問題,我不能夠使用--test。

C:\MyFolder\bin\NUnit.ConsoleRunner.3.5.0\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" --test="MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest" 

這是新的位置,並獲得相同的問題。

當我這樣做 - 其中爲MyFolder它崩潰Powershell但實際上並沒有運行任何東西。

當我這樣做--explore它與 - MyFolder相同並且對MyFolder.QuickTests沒有任何作用。

編輯編輯:

感謝Rob我發現文檔here,看着--where函數--where「NAME = ProductBasicTest」,這將運行在測試套件中的所有文件!

+1

這表的工作方式我同時使用類(夾具)名稱或只是3.5的命名空間名稱。我不記得在3.5中修復了這個問題,但是你可以嘗試升級。您也可以嘗試使用'--where'命令行或'--explore'命令來確保您的測試的命名方式不同。 –

+1

NUnit 3也不使用/ run或/ fixture命令行選項。這是一個完全重寫與不同的命令行選項比2.6.x –

+0

@RobProuse哦真棒我很感激它,我會嘗試更新到3.5,你知道哪裏的文檔是nunit控制檯命令?單元3+? –

回答

0

非常感謝Rob遇到的一個問題,它是不是用QuickTests正確識別我的名字空間。所以每當我運行該功能時,它都無法正常運行。

要解決此問題,您可以轉到Test xml文件輸出並查看它正在運行測試的名稱。

單獨運行這些,你可以通過名字用命令來運行它:

"nunit3-console.exe C:\PathToDll.dll --where "name = NameOfTest"