Seçili birim testlerini çalıştırma
dotnet test
.NET Core'daki komutuyla, seçilen 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
.
Syntax
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&
boolean ve için.İfadeler parantez içine alınmış olabilir. Örneğin:
(Name~MyClass) | (Name~MyClass2)
.herhangi bir işleci olmayan bir ifade, özelliğinde
FullyQualifiedName
bir içerir olarak yorumlanır. Örneğindotnet test --filter xyz
iledotnet test --filter FullyQualifiedName~xyz
aynıdır.Özelliği , öğesinin
Test Case
bir özniteliğidir. Ö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 ters eğik çizgi (\!
) koyarak bazı Linux veya macOS kabuklarında bu işaretin kaçması 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 kurtulabilirsiniz. Örnek:
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 | Sonuç |
---|---|
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 olan 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 veyaTestCategoryAttribute
"CategoryA"
olanUnitTest1
FullyQualifiedName testleri çalıştırmak için.dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
içinde ve içinde bir TestCategoryAttribute
"CategoryA"
olanUnitTest1
FullyQualifiedName testleri çalıştırmak için.dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
içeren ve veya önceliğe
1
sahipPriorityAttributeTestCategoryAttribute"CategoryA"
olan 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 | Sonuç |
---|---|
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 | Sonuç |
---|---|
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ı
"Category"
ve değerine"CategoryA"
sahipTrait
testleri FullyQualifiedNameTestClass1
çalıştırmak için.dotnet test --filter "FullyQualifiedName~TestClass1|Category=CategoryA"
içinde bulunan
TestClass1
FullyQualifiedName ve anahtarı"Category"
veTrait
değeri"CategoryA"
olan testleri çalıştırmak için.dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"
öğesini içeren FullyQualifiedName
TestClass1
ve anahtarı veTrait
değeri olan veya anahtarı"Category"
ve değerine"CategoryA"
1
sahip olanTrait
"Priority"
testleri ç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 | Sonuç |
---|---|
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 olan 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 veya içinde bir Category
"CategoryA"
olan UnitTest1
FullyQualifiedName testleri çalıştırmak için.
dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
içinde ve içinde bir Category
"CategoryA"
olan UnitTest1
FullyQualifiedName testleri çalıştırmak için.
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
içeren veCategory
"CategoryA"
içeren veyaProperty
"Priority"
1
içeren testleri FullyQualifiedNameUnitTest1
çalıştırmak için.
dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
Daha fazla bilgi için bkz . TestCase filtresi.
Ayrıca bkz.
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin