Ausführen von selektiven KomponententestsRunning selective unit tests

Die folgenden Beispiele verwenden dotnet test.The following examples use dotnet test. Wenn Sie vstest.console.exe verwenden, ersetzen Sie --filter mit --testcasefilter:.If you're using vstest.console.exe, replace --filter with --testcasefilter:.

MSTestMSTest

namespace MSTestNamespace
{
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    [TestClass]
    public class UnitTestClass1
    {
        [Priority(2)]
        [TestMethod]
        public void TestMethod1()
        {
        }

        [TestCategory("CategoryA")]
        [Priority(3)]
        [TestMethod]
        public void TestMethod2()
        {
        }
    }
}
AusdruckExpression ErgebnisResult
dotnet test --filter Method Führt Tests aus, dessen FullyQualifiedName Method enthält.Runs tests whose FullyQualifiedName contains Method. Verfügbar in vstest 15.1+.Available in vstest 15.1+.
dotnet test --filter Name~TestMethod1 Führt Tests aus, dessen Name TestMethod1 enthält.Runs tests whose name contains TestMethod1.
dotnet test --filter ClassName=MSTestNamespace.UnitTestClass1 Führt Tests aus, die sich in der Klasse MSTestNamespace.UnitTestClass1 befinden.Runs tests which are in class MSTestNamespace.UnitTestClass1.
Hinweis: Der Wert ClassName muss einen Namespace besitzen, damit ClassName=UnitTestClass1 nicht funktioniert.Note: The ClassName value should have a namespace, so ClassName=UnitTestClass1 won't work.
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTestClass1.TestMethod1 Führt alle Tests außer MSTestNamespace.UnitTestClass1.TestMethod1 aus.Runs all tests except MSTestNamespace.UnitTestClass1.TestMethod1.
dotnet test --filter TestCategory=CategoryA Führt Tests aus, die mit [TestCategory("CategoryA")] kommentiert sind.Runs tests which are annotated with [TestCategory("CategoryA")].
dotnet test --filter Priority=3 Führt Tests aus, die mit [Priority(3)] kommentiert sind.Runs tests which are annotated with [Priority(3)].
Hinweis: Priority~3 ist ein ungültiger Wert, da er keine Zeichenfolge ist.Note: Priority~3 is an invalid value, as it isn't a string.

Verwenden bedingter Operatoren | und&Using conditional operators | and &

AusdruckExpression ErgebnisResult
dotnet test --filter "FullyQualifiedName~UnitTestClass1|TestCategory=CategoryA" Führt Tests aus, die UnitTestClass1 in FullyQualifiedName besitzen, oder TestCategory ist CategoryA.Runs tests which have UnitTestClass1 in FullyQualifiedName or TestCategory is CategoryA.
dotnet test --filter "FullyQualifiedName~UnitTestClass1&TestCategory=CategoryA" Führt Tests aus, die UnitTestClass1 in FullyQualifiedName besitzen, und TestCategory ist CategoryA.Runs tests which have UnitTestClass1 in FullyQualifiedName and TestCategory is CategoryA.
dotnet test --filter "(FullyQualifiedName~UnitTestClass1&TestCategory=CategoryA)|Priority=1" Führt Tests aus, in denen FullyQualifiedName entweder UnitTestClass1 enthalten ist, und TestCategory ist CategoryA, oder Priority ist 1.Runs tests which have either FullyQualifiedName containing UnitTestClass1 and TestCategory is CategoryA or Priority is 1.

xUnitxUnit

namespace XUnitNamespace
{
    public class TestClass1
    {
        [Trait("Category", "bvt")]
        [Trait("Priority", "1")]
        [Fact]
        public void foo()
        {
        }

        [Trait("Category", "Nightly")]
        [Trait("Priority", "2")]
        [Fact]
        public void bar()
        {
        }
    }
}
AusdruckExpression ErgebnisResult
dotnet test --filter DisplayName=XUnitNamespace.TestClass1.Test1 Führt einen Test, XUnitNamespace.TestClass1.Test1, aus.Runs only one test, XUnitNamespace.TestClass1.Test1.
dotnet test --filter FullyQualifiedName!=XUnitNamespace.TestClass1.Test1 Führt alle Tests außer XUnitNamespace.TestClass1.Test1 aus.Runs all tests except XUnitNamespace.TestClass1.Test1.
dotnet test --filter DisplayName~TestClass1 Führt Tests aus, dessen Anzeigename TestClass1 enthält.Runs tests whose display name contains TestClass1.

Im Codebeispiel können die definierten Merkmale mit den Schlüsseln Category und Priority zum Filtern verwendet werden.In the code example, the defined traits with keys Category and Priority can be used for filtering.

AusdruckExpression ErgebnisResult
dotnet test --filter XUnit Führt Tests aus, dessen FullyQualifiedName XUnit enthält.Runs tests whose FullyQualifiedName contains XUnit. Verfügbar in vstest 15.1+.Available in vstest 15.1+.
dotnet test --filter Category=bvt Führt Tests aus, die [Trait("Category", "bvt")] besitzen.Runs tests which have [Trait("Category", "bvt")].

Verwenden bedingter Operatoren | und&Using conditional operators | and &

AusdruckExpression ErgebnisResult
dotnet test --filter "FullyQualifiedName~TestClass1|Category=Nightly" Führt Tests aus, die TestClass1 in FullyQualifiedName besitzen, oder Category ist Nightly.Runs tests which has TestClass1 in FullyQualifiedName or Category is Nightly.
dotnet test --filter "FullyQualifiedName~TestClass1&Category=Nightly" Führt Tests aus, die TestClass1 in FullyQualifiedName besitzen, und Category ist Nightly.Runs tests which has TestClass1 in FullyQualifiedName and Category is Nightly.
dotnet test --filter "(FullyQualifiedName~TestClass1&Category=Nightly)|Priority=1" Führt Tests aus, in denen FullyQualifiedName entweder TestClass1 enthalten ist, und Category ist CategoryA, oder Priority ist 1.Runs tests which have either FullyQualifiedName containing TestClass1 and Category is CategoryA or Priority is 1.