我在.NET Core項目中有一個很大的測試套件。我可以使用測試瀏覽器窗口來選擇一些測試來運行。如何使用dotnet測試運行特定測試?
我也可以使用dotnet test
在命令行上運行整個測試套件。有沒有辦法在命令行上只運行一個(或幾個)測試?
我在.NET Core項目中有一個很大的測試套件。我可以使用測試瀏覽器窗口來選擇一些測試來運行。如何使用dotnet測試運行特定測試?
我也可以使用dotnet test
在命令行上運行整個測試套件。有沒有辦法在命令行上只運行一個(或幾個)測試?
隨着DOTNET版本1.0.0,您必須使用--filter選項:
您可以通過顯示名稱,FullyQualifiedName和特點進行篩選。
例:
dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1"
此外,這些運營商被允許:!=,=和〜(含)。
此處瞭解詳情:docs
這個答案已經過時......
這是特定的xUnit:
dotnet test -method <test name>
<test name>
是完整的方法名(命名空間+類+方法名)
如果你的測試是
Theory
,AFAIK,沒有辦法指定運行哪個理論。它會運行所有這些。
謝謝!這是記錄在任何地方? –
我認爲它應該在xunit文檔中的某個地方https://xunit.github.io/#documentation –
這可能是在過去的幾周內發生了變化;你現在可以用相同的方式來測試一個理論。 – kiml42
因爲這個問題被打上的xUnit,對於DOTNET命令的xUnit CLI命令如下:
dotnet xunit -method FullyQualifiedName
我嘗試了這一點,該解決方案也適用於1.1版本和[Theory]裝飾方法。開關'-method'和'-class'在1.1中不可用,你會得到一個錯誤:'MSBUILD:錯誤MSB1001:未知開關。開關:-method' – Teknikaali
是的,我剛剛證實了這一點。 '-method'不再有效,但'--filter'確實。謝謝@andrecarlucci! –
從版本15.1開始,表達式可以是一個與完全限定名稱匹配的關鍵字。正如文檔所述「'dotnet test --filter xyz'與'dotnet test --filter FullyQualifiedName〜xyz'相同」這很舒服! – vtellier