Share via


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 mint dotnet test --filter FullyQualifiedName~xyza .

  • 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 %2Ckell 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.UnitTest1tartozó 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 vannakUnitTest1, és amelyek a-ból "CategoryA"vannakTestCategoryAttribute.

    dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
    
  • Olyan tesztek futtatásához, amelyek FullyQualifiedName vagy tartalmaznak UnitTest1egyTestCategoryAttributePriorityAttribute"CategoryA" vagy egy prioritással 1rendelkező 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"rendelkeznek TestClass1Trait.

    dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"
    
  • Olyan tesztek futtatásához, amelyek FullyQualifiedNameTestClass1 tartalmazzák és rendelkeznek egy Trait kulccsal "Category" és értékkel"CategoryA", vagy rendelkezik Trait 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.UnitTest1tartozó 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"CategoryUnitTest1, vagy a-val "Priority"1rendelkeznek.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