2016-06-10 79 views
16

我在.NET Core項目中有一個很大的測試套件。我可以使用測試瀏覽器窗口來選擇一些測試來運行。如何使用dotnet測試運行特定測試?

我也可以使用dotnet test在命令行上運行整個測試套件。有沒有辦法在命令行上只運行一個(或幾個)測試?

回答

20

隨着DOTNET版本1.0.0,您必須使用--filter選項:

您可以通過顯示名稱,FullyQualifiedName和特點進行篩選。

例:

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1" 

此外,這些運營商被允許:!=,=和〜(含)。

此處瞭解詳情:docs

+0

我嘗試了這一點,該解決方案也適用於1.1版本和[Theory]裝飾方法。開關'-method'和'-class'在1.1中不可用,你會得到一個錯誤:'MSBUILD:錯誤MSB1001:未知開關。開關:-method' – Teknikaali

+1

是的,我剛剛證實了這一點。 '-method'不再有效,但'--filter'確實。謝謝@andrecarlucci! –

+0

從版本15.1開始,表達式可以是一個與完全限定名稱匹配的關鍵字。正如文檔所述「'dotnet test --filter xyz'與'dotnet test --filter FullyQualifiedName〜xyz'相同」這很舒服! – vtellier

11

這個答案已經過時......

這是特定的xUnit: dotnet test -method <test name>

<test name>是完整的方法名(命名空間+類+方法名)

如果你的測試是 Theory ,AFAIK,沒有辦法指定運行哪個理論。它會運行所有這些。

+0

謝謝!這是記錄在任何地方? –

+0

我認爲它應該在xunit文檔中的某個地方https://xunit.github.io/#documentation –

+0

這可能是在過去的幾周內發生了變化;你現在可以用相同的方式來測試一個理論。 – kiml42

4

因爲這個問題被打上的xUnit,對於DOTNET命令的xUnit CLI命令如下:

dotnet xunit -method FullyQualifiedName 
相關問題