Kiválasztott egységtesztek futtatása
dotnet test
A .NET Core parancsával szűrőkifejezéssel futtathatja a kiválasztott teszteket. Ez a cikk bemutatja, hogyan szűrhet teszteket. A példák a következőt használják dotnet test
: . Ha a parancsot használja vstest.console.exe
, cserélje le a értéket --filter
a következőre --testcasefilter:
: .
Syntax
dotnet test --filter <Expression>
A kifejezés formátuma
<Property><Operator><Value>[|&<Expression>]
.A kifejezések logikai operátorokkal is összekapcsolhatók:
|
logikai&
vagy logikai és.A kifejezések zárójelben is megadhatóak. Példa:
(Name~MyClass) | (Name~MyClass2)
.A operátor nélküli kifejezéseket a rendszer a tulajdonságban tartalmazként értelmezi
FullyQualifiedName
. Például ugyanaz,dotnet test --filter xyz
mintdotnet test --filter FullyQualifiedName~xyz
a .A tulajdonság a attribútuma
Test Case
. A népszerű egységtesztelési keretrendszerek például az alábbi tulajdonságokat támogatják.Tesztelési keretrendszer Támogatott tulajdonságok MSTest FullyQualifiedName
Name
ClassName
Priority
TestCategory
xUnit FullyQualifiedName
DisplayName
Traits
Nunit FullyQualifiedName
Name
Priority
TestCategory
Operátorok
=
pontos egyezés!=
nem pontos egyezés~
Tartalmaz!~
nem tartalmaz
Az érték egy sztring. Minden keresés megkülönbözteti a kis- és nagybetűket.
Karakteres menekülés
Ha felkiáltójelet (!
) szeretne használni egy szűrőkifejezésben, meg kell szabadulnia néhány Linux- vagy macOS-rendszerhéjban, ha fordított perjelet helyez elé (\!
). Az alábbi szűrő például kihagyja az összes tesztet egy olyan névtérben, amely tartalmazza a következőt IntegrationTests
:
dotnet test --filter FullyQualifiedName\!~IntegrationTests
Az általános típusparaméterekhez vesszőt tartalmazó értékek esetén FullyQualifiedName
a vesszőt a következővel %2C
kell feloldani: . Például:
dotnet test --filter "FullyQualifiedName=MyNamespace.MyTestsClass<ParameterType1%2CParameterType2>.MyTestMethod"
MSTest-példák
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 | Eredmény |
---|---|
dotnet test --filter Method |
Futtatja azokat a teszteket, amelyek FullyQualifiedName tartalmazzák a fájlt Method . |
dotnet test --filter Name~TestMethod1 |
Futtatja azokat a teszteket, amelyeknek a neve tartalmazza a fájlt TestMethod1 . |
dotnet test --filter ClassName=MSTestNamespace.UnitTest1 |
A osztályba MSTestNamespace.UnitTest1 tartozó teszteket futtat.Megjegyzés: Az ClassName értéknek névtérrel kell rendelkeznie, ezért ClassName=UnitTest1 nem fog működni. |
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTest1.TestMethod1 |
Az összes tesztet futtatja a kivételével MSTestNamespace.UnitTest1.TestMethod1 . |
dotnet test --filter TestCategory=CategoryA |
A következővel [TestCategory("CategoryA")] jegyzettel ellátott teszteket futtat: . |
dotnet test --filter Priority=2 |
A következővel [Priority(2)] jegyzettel ellátott teszteket futtat: . |
Példák a feltételes operátorok |
és &
a használatára:
A(z) vagyTestCategoryAttribute az -ben FullyQualifiedName található
UnitTest1
teszteket futtathatja"CategoryA"
.dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek a-jukban FullyQualifiedName vannak
UnitTest1
, és amelyek a-ból"CategoryA"
vannakTestCategoryAttribute.dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek FullyQualifiedName vagy tartalmaznak
UnitTest1
egyTestCategoryAttributePriorityAttribute"CategoryA"
vagy egy prioritással1
rendelkező vagy prioritású teszteket.dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
xUnit-példák
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 | Eredmény |
---|---|
dotnet test --filter DisplayName=XUnitNamespace.TestClass1.Test1 |
Csak egy tesztet futtat( XUnitNamespace.TestClass1.Test1 ). |
dotnet test --filter FullyQualifiedName!=XUnitNamespace.TestClass1.Test1 |
Az összes tesztet futtatja a kivételével XUnitNamespace.TestClass1.Test1 . |
dotnet test --filter DisplayName~TestClass1 |
Futtatja azokat a teszteket, amelyeknek a megjelenítendő neve tartalmazza a fájlt TestClass1 . |
A kód példájában a kulcsokkal "Category"
"Priority"
definiált tulajdonságok használhatók szűrésre.
Expression | Eredmény |
---|---|
dotnet test --filter XUnit |
Futtatja azokat a teszteket, amelyek FullyQualifiedName tartalmazzák a fájlt XUnit . |
dotnet test --filter Category=CategoryA |
Futtatja azokat a teszteket, amelyek rendelkeznek .[Trait("Category", "CategoryA")] |
Példák a feltételes operátorok |
és &
a használatára:
Olyan tesztek futtatásához, amelyek
TestClass1
rendelkeznek FullyQualifiedNamevagy rendelkeznekTrait
a kulcsával"Category"
és értékével"CategoryA"
.dotnet test --filter "FullyQualifiedName~TestClass1|Category=CategoryA"
Olyan tesztek futtatásához, amelyek a FullyQualifiedName és a kulcsával
"Category"
és értékével"CategoryA"
rendelkeznekTestClass1
Trait
.dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"
Olyan tesztek futtatásához, amelyek FullyQualifiedName
TestClass1
tartalmazzák és rendelkeznek egyTrait
kulccsal"Category"
és értékkel"CategoryA"
, vagy rendelkezikTrait
egy kulccsal"Priority"
és értékkel1
.dotnet test --filter "(FullyQualifiedName~TestClass1&Category=CategoryA)|Priority=1"
NUnit-példák
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 | Eredmény |
---|---|
dotnet test --filter Method |
Futtatja azokat a teszteket, amelyek FullyQualifiedName tartalmazzák a fájlt Method . |
dotnet test --filter Name~TestMethod1 |
Futtatja azokat a teszteket, amelyeknek a neve tartalmazza a fájlt TestMethod1 . |
dotnet test --filter FullyQualifiedName~NUnitNamespace.UnitTest1 |
A osztályba NUnitNamespace.UnitTest1 tartozó teszteket futtat. |
dotnet test --filter FullyQualifiedName!=NUnitNamespace.UnitTest1.TestMethod1 |
Az összes tesztet futtatja a kivételével NUnitNamespace.UnitTest1.TestMethod1 . |
dotnet test --filter TestCategory=CategoryA |
A következővel [Category("CategoryA")] jegyzettel ellátott teszteket futtat: . |
dotnet test --filter Priority=2 |
A következővel [Priority(2)] jegyzettel ellátott teszteket futtat: . |
Példák a feltételes operátorok |
és &
a használatára:
Olyan tesztek futtatásához, amelyek a -ben vagy a-benFullyQualifiedName vannakUnitTest1
."CategoryA"
Category
dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek a-jukban FullyQualifiedName vannakUnitTest1
, és amelyek a-ból "CategoryA"
vannakCategory
.
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek FullyQualifiedName egy vagy egy vagy egy elemet tartalmaznak "CategoryA"
Category
UnitTest1
, vagy a-val "Priority"
1
rendelkeznek.Property
dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
További információ: TestCase szűrő.
Lásd még
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: