Seçili birim testlerini çalıştırma
dotnet test
.NET Core'daki komutuyla, seçili testleri çalıştırmak için bir filtre ifadesi kullanabilirsiniz. Bu makalede testlerin nasıl filtreleneceği gösterilmektedir. Örneklerde kullanılır dotnet test
. kullanıyorsanız vstest.console.exe
değerini ile --testcasefilter:
değiştirin--filter
.
Sözdizimi
dotnet test --filter <Expression>
İfade biçimindedir
<Property><Operator><Value>[|&<Expression>]
.İfadeler boole işleçleriyle birleştirilebilir:
|
boole işleçleri için veya&
boole ve için.İfadeler parantez içine alınabilir. Örneğin:
(Name~MyClass) | (Name~MyClass2)
.İşleci olmayan bir ifade özelliğinde
FullyQualifiedName
bir contains olarak yorumlanır. Örneğindotnet test --filter xyz
iledotnet test --filter FullyQualifiedName~xyz
aynıdır.Özellik , özniteliğidir
Test Case
. Örneğin, aşağıdaki özellikler popüler birim testi çerçeveleri tarafından desteklenir.Test çerçevesi Desteklenen özellikler MSTest FullyQualifiedName
Name
ClassName
Priority
TestCategory
xUnit FullyQualifiedName
DisplayName
Traits
Nunit FullyQualifiedName
Name
Priority
TestCategory
İşleçler
=
tam eşleşme!=
tam eşleşme değil~
Içerir!~
içermez
Değer bir dizedir. Tüm aramalar büyük/küçük harfe duyarlı değildir.
Karakter kaçışı
Filtre ifadesinde ünlem işareti (!
) kullanmak için önüne bir ters eğik çizgi () koyarak bazı Linux veya macOS kabuklarında bundan kurtulmanız gerekir\!
. Örneğin, aşağıdaki filtre içeren IntegrationTests
bir ad alanında tüm testleri atlar:
dotnet test --filter FullyQualifiedName\!~IntegrationTests
Genel FullyQualifiedName
tür parametreleri için virgül içeren değerler için ile %2C
virgülden kaçış. Örneğin:
dotnet test --filter "FullyQualifiedName=MyNamespace.MyTestsClass<ParameterType1%2CParameterType2>.MyTestMethod"
MSTest örnekleri
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MSTestNamespace
{
[TestClass]
public class UnitTest1
{
[TestMethod, Priority(1), TestCategory("CategoryA")]
public void TestMethod1()
{
}
[TestMethod, Priority(2)]
public void TestMethod2()
{
}
}
}
Expression | Result |
---|---|
dotnet test --filter Method |
içeren Method testleri FullyQualifiedName çalıştırır. |
dotnet test --filter Name~TestMethod1 |
adında TestMethod1 bulunan testleri çalıştırır. |
dotnet test --filter ClassName=MSTestNamespace.UnitTest1 |
sınıfında MSTestNamespace.UnitTest1 testleri çalıştırır.Not: Değerin ClassName ad alanı olmalıdır, bu nedenle ClassName=UnitTest1 çalışmaz. |
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTest1.TestMethod1 |
dışındaki MSTestNamespace.UnitTest1.TestMethod1 tüm testleri çalıştırır. |
dotnet test --filter TestCategory=CategoryA |
ile [TestCategory("CategoryA")] ek açıklama ekleyen testleri çalıştırır. |
dotnet test --filter Priority=2 |
ile [Priority(2)] ek açıklama ekleyen testleri çalıştırır. |
Koşullu işleçleri |
ve &
kullanan örnekler:
içinde veya
"CategoryA"
TestCategoryAttribute olanUnitTest1
FullyQualifiedName testleri çalıştırmak için.dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
içinde ve bir
"CategoryA"
TestCategoryAttribute tanesineUnitTest1
FullyQualifiedName sahip testleri çalıştırmak için.dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
içeren ve veya önceliğine
1
sahip"CategoryA"
PriorityAttribute TestCategoryAttribute testleriUnitTest1
FullyQualifiedName çalıştırmak için.dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
xUnit örnekleri
using Xunit;
namespace XUnitNamespace
{
public class TestClass1
{
[Fact, Trait("Priority", "1"), Trait("Category", "CategoryA")]
public void Test1()
{
}
[Fact, Trait("Priority", "2")]
public void Test2()
{
}
}
}
Expression | Result |
---|---|
dotnet test --filter DisplayName=XUnitNamespace.TestClass1.Test1 |
Yalnızca bir test çalıştırır: XUnitNamespace.TestClass1.Test1 . |
dotnet test --filter FullyQualifiedName!=XUnitNamespace.TestClass1.Test1 |
dışındaki XUnitNamespace.TestClass1.Test1 tüm testleri çalıştırır. |
dotnet test --filter DisplayName~TestClass1 |
Görünen adı içeren TestClass1 testleri çalıştırır. |
Kod örneğinde anahtarlarla "Category"
tanımlanan özellikler ve "Priority"
filtreleme için kullanılabilir.
Expression | Result |
---|---|
dotnet test --filter XUnit |
içeren XUnit testleri FullyQualifiedName çalıştırır. |
dotnet test --filter Category=CategoryA |
olan [Trait("Category", "CategoryA")] testleri çalıştırır. |
Koşullu işleçleri |
ve &
kullanan örnekler:
içinde veya anahtarı ve değeri
"CategoryA"
olan testleri FullyQualifiedNameTestClass1
çalıştırmak için."Category"
Trait
dotnet test --filter "FullyQualifiedName~TestClass1|Category=CategoryA"
içinde ve
TestClass1
Trait
FullyQualifiedName anahtarı"Category"
ve değeri olan testleri çalıştırmak için."CategoryA"
dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"
içeren ve anahtarı ve
Trait
değeri olan veyaTrait
anahtarı"Category"
ve değeri1
"CategoryA"
olan"Priority"
testleri FullyQualifiedNameTestClass1
çalıştırmak için.dotnet test --filter "(FullyQualifiedName~TestClass1&Category=CategoryA)|Priority=1"
NUnit örnekleri
using NUnit.Framework;
namespace NUnitNamespace
{
public class UnitTest1
{
[Test, Property("Priority", 1), Category("CategoryA")]
public void TestMethod1()
{
}
[Test, Property("Priority", 2)]
public void TestMethod2()
{
}
}
}
Expression | Result |
---|---|
dotnet test --filter Method |
içeren Method testleri FullyQualifiedName çalıştırır. |
dotnet test --filter Name~TestMethod1 |
adında TestMethod1 bulunan testleri çalıştırır. |
dotnet test --filter FullyQualifiedName~NUnitNamespace.UnitTest1 |
sınıfında NUnitNamespace.UnitTest1 testleri çalıştırır. |
dotnet test --filter FullyQualifiedName!=NUnitNamespace.UnitTest1.TestMethod1 |
dışındaki NUnitNamespace.UnitTest1.TestMethod1 tüm testleri çalıştırır. |
dotnet test --filter TestCategory=CategoryA |
ile [Category("CategoryA")] ek açıklama ekleyen testleri çalıştırır. |
dotnet test --filter Priority=2 |
ile [Priority(2)] ek açıklama ekleyen testleri çalıştırır. |
Koşullu işleçleri |
ve &
kullanan örnekler:
içinde FullyQualifiedName veya bir tanesine UnitTest1
sahip Category
"CategoryA"
testleri çalıştırmak için.
dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
içinde ve bir "CategoryA"
Category
tanesine UnitTest1
FullyQualifiedName sahip testleri çalıştırmak için.
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
içeren ve içeren veya Category
"Priority"
"CategoryA"
Property
1
içeren testleri FullyQualifiedName UnitTest1
çalıştırmak için.
dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
Daha fazla bilgi için bkz . TestCase filtresi.