Kijelölt 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űrheti a teszteket. A példák a következőt használják dotnet test
: Ha használjavstest.console.exe
, cserélje le a következőre--testcasefilter:
--filter
: .
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 csatolhatók. Például:
(Name~MyClass) | (Name~MyClass2)
Az operátor nélküli kifejezéseket a rendszer a tulajdonság tartalmaként értelmezi
FullyQualifiedName
. Például ugyanaz,dotnet test --filter xyz
mintdotnet test --filter FullyQualifiedName~xyz
a .A tulajdonság a
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 érzéketlen a kis- és nagybetűk között.
A karakter menekülése
Ha felkiáltójelet (!
) szeretne használni egy szűrőkifejezésben, néhány Linux- vagy macOS-rendszerhéjban meg kell szabadulnia, ha egy fordított perjelet helyez elé (\!
). A következő szűrő például kihagyja az összes tesztet egy névtérben, amely tartalmazza a következőket 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élda:
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 azokat Method . |
dotnet test --filter Name~TestMethod1 |
Futtatja azokat a teszteket, amelyeknek a neve tartalmazza.TestMethod1 |
dotnet test --filter ClassName=MSTestNamespace.UnitTest1 |
Osztályban lévő MSTestNamespace.UnitTest1 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 jegyzetelt [TestCategory("CategoryA")] teszteket futtatja: . |
dotnet test --filter Priority=2 |
A következővel jegyzetelt [Priority(2)] teszteket futtatja: . |
Példák a feltételes operátorok |
és &
a:
Olyan tesztek futtatása, amelyek a sajátjukban FullyQualifiedName vagy TestCategoryAttribute azok között vannak
UnitTest1
"CategoryA"
.dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Olyan tesztek futtatása, amelyek a sajátjukban FullyQualifiedName vannak
UnitTest1
, és amelyekben van egyTestCategoryAttribute."CategoryA"
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek FullyQualifiedName tartalmazzák
UnitTest1
és rendelkeznek"CategoryA"
TestCategoryAttribute egy vagy több PriorityAttribute prioritású1
teszttel.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, amelyek megjelenítendő nevét tartalmazza TestClass1 . |
A kód példájában a kulcsokat tartalmazó "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 azokat 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:
Olyan tesztek futtatásához, amelyekben FullyQualifiedName
TestClass1
szerepel aTrait
kulcs"Category"
és az érték."CategoryA"
dotnet test --filter "FullyQualifiedName~TestClass1|Category=CategoryA"
Olyan tesztek futtatásához, amelyek
TestClass1
rendelkeznek a hozzájuk FullyQualifiedName tartozó ésTrait
a kulcsukkal"Category"
és értékükkel"CategoryA"
.dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"
Olyan tesztek futtatása, amelyek FullyQualifiedName tartalmazzák
TestClass1
és rendelkeznekTrait
egy 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 azokat Method . |
dotnet test --filter Name~TestMethod1 |
Futtatja azokat a teszteket, amelyeknek a neve tartalmazza.TestMethod1 |
dotnet test --filter FullyQualifiedName~NUnitNamespace.UnitTest1 |
Osztályban lévő NUnitNamespace.UnitTest1 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 jegyzetelt [Category("CategoryA")] teszteket futtatja: . |
dotnet test --filter Priority=2 |
A következővel jegyzetelt [Priority(2)] teszteket futtatja: . |
Példák a feltételes operátorok |
és &
a:
Olyan tesztek futtatása, amelyek UnitTest1
a saját vagy FullyQualifiedName a."CategoryA"
Category
dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Olyan tesztek futtatása, amelyek a sajátjukban FullyQualifiedName vannakUnitTest1
, és amelyekben van egyCategory
."CategoryA"
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek FullyQualifiedName tartalmaznak UnitTest1
, és Category
amelyekből "CategoryA"
van egy, vagy rendelkezik Property
a következővel "Priority"
1
: .
dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
További információ: TestCase szűrő.