Ausführen von selektiven Komponententests

Die folgenden Beispiele verwenden dotnet test. Wenn Sie vstest.console.exe verwenden, ersetzen Sie --filter mit --testcasefilter:.

MSTest

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()
        {
        }
    }
}
Ausdruck Ergebnis
dotnet test --filter Method Führt Tests aus, dessen FullyQualifiedName Method enthält. Verfügbar in vstest 15.1+.
dotnet test --filter Name~TestMethod1 Führt Tests aus, dessen Name TestMethod1 enthält.
dotnet test --filter ClassName=MSTestNamespace.UnitTestClass1 Führt Tests aus, die sich in der Klasse MSTestNamespace.UnitTestClass1 befinden.
Hinweis: Der Wert ClassName muss einen Namespace besitzen, damit ClassName=UnitTestClass1 nicht funktioniert.
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTestClass1.TestMethod1 Führt alle Tests außer MSTestNamespace.UnitTestClass1.TestMethod1 aus.
dotnet test --filter TestCategory=CategoryA Führt Tests aus, die mit [TestCategory("CategoryA")] kommentiert sind.
dotnet test --filter Priority=3 Führt Tests aus, die mit [Priority(3)] kommentiert sind.
Hinweis: Priority~3 ist ein ungültiger Wert, da er keine Zeichenfolge ist.

Verwenden bedingter Operatoren | und&

Ausdruck Ergebnis
dotnet test --filter "FullyQualifiedName~UnitTestClass1|TestCategory=CategoryA" Führt Tests aus, die UnitTestClass1 in FullyQualifiedName besitzen, oder TestCategory ist CategoryA.
dotnet test --filter "FullyQualifiedName~UnitTestClass1&TestCategory=CategoryA" Führt Tests aus, die UnitTestClass1 in FullyQualifiedName besitzen, und TestCategory ist 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.

xUnit

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()
        {
        }
    }
}
Ausdruck Ergebnis
dotnet test --filter DisplayName=XUnitNamespace.TestClass1.Test1 Führt einen Test, XUnitNamespace.TestClass1.Test1, aus.
dotnet test --filter FullyQualifiedName!=XUnitNamespace.TestClass1.Test1 Führt alle Tests außer XUnitNamespace.TestClass1.Test1 aus.
dotnet test --filter DisplayName~TestClass1 Führt Tests aus, dessen Anzeigename TestClass1 enthält.

Im Codebeispiel können die definierten Merkmale mit den Schlüsseln Category und Priority zum Filtern verwendet werden.

Ausdruck Ergebnis
dotnet test --filter XUnit Führt Tests aus, dessen FullyQualifiedName XUnit enthält. Verfügbar in vstest 15.1+.
dotnet test --filter Category=bvt Führt Tests aus, die [Trait("Category", "bvt")] besitzen.

Verwenden bedingter Operatoren | und&

Ausdruck Ergebnis
dotnet test --filter "FullyQualifiedName~TestClass1|Category=Nightly" Führt Tests aus, die TestClass1 in FullyQualifiedName besitzen, oder Category ist Nightly.
dotnet test --filter "FullyQualifiedName~TestClass1&Category=Nightly" Führt Tests aus, die TestClass1 in FullyQualifiedName besitzen, und Category ist 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.