Teilen über


VSTest@3 – Visual Studio Test v3-Aufgabe

Verwenden Sie diese Aufgabe, um Komponenten- und Funktionstests (Selenium, Appium, Coded UI-Test usw.) mithilfe des Visual Studio Test (VSTest)-Läufers auszuführen. Sie können Testframeworks ausführen, die über einen Visual Studio-Testadapter verfügen. Beispielframeworks sind MSTest, xUnit, NUnit, Chutzpah (für JavaScript-Tests mit QUnit, Mocha und Jasmine), usw. Tests können mithilfe dieser Aufgabe auf mehrere Agents verteilt werden.

Anmerkung

VSTest@3 ist die neueste Version des Vorgangs und sollte in Ihren Pipelines verwendet werden.

Syntax

# Visual Studio Test v3
# Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2 and later).
- task: VSTest@3
  inputs:
    #azureSubscription: # string. Alias: ConnectedServiceName. Azure Resource Manager connection. 
  # Test selection
    testSelector: 'testAssemblies' # 'testAssemblies' | 'testPlan' | 'testRun'. Required. Select tests using. Default: testAssemblies.
    testAssemblyVer2: # string. Required when testSelector = testAssemblies. Test files. 
    #testPlan: # string. Required when testSelector = testPlan. Test plan. 
    #testSuite: # string. Required when testSelector = testPlan. Test suite. 
    #testConfiguration: # string. Required when testSelector = testPlan. Test configuration. 
    #tcmTestRun: '$(test.RunId)' # string. Optional. Use when testSelector = testRun. Test Run. Default: $(test.RunId).
    searchFolder: '$(System.DefaultWorkingDirectory)' # string. Required. Search folder. Default: $(System.DefaultWorkingDirectory).
    #resultsFolder: '$(Agent.TempDirectory)\TestResults' # string. Test results folder. Default: $(Agent.TempDirectory)\TestResults.
    #testFiltercriteria: # string. Optional. Use when testSelector = testAssemblies. Test filter criteria. 
    #runOnlyImpactedTests: False # boolean. Optional. Use when testSelector = testAssemblies. Run only impacted tests. Default: False.
    #runAllTestsAfterXBuilds: '50' # string. Optional. Use when testSelector = testAssemblies && runOnlyImpactedTests = true. Number of builds after which all tests should be run. Default: 50.
    #uiTests: false # boolean. Test mix contains UI tests. Default: false.
  # Execution options
    #vstestLocationMethod: 'version' # 'version' | 'location'. Select test platform using. Default: version.
    #vsTestVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | 'toolsInstaller'. Optional. Use when vstestLocationMethod = version. Test platform version. Default: latest.
    #vstestLocation: # string. Optional. Use when vstestLocationMethod = location. Path to vstest.console.exe. 
    #runSettingsFile: # string. Settings file. 
    #overrideTestrunParameters: # string. Override test run parameters. 
    #pathtoCustomTestAdapters: # string. Path to custom test adapters. 
    #runInParallel: False # boolean. Run tests in parallel on multi-core machines. Default: False.
    #runTestsInIsolation: False # boolean. Run tests in isolation. Default: False.
    #codeCoverageEnabled: False # boolean. Code coverage enabled. Default: False.
    #otherConsoleOptions: # string. Other console options. 
    #diagnosticsEnabled: false # boolean. Collect advanced diagnostics in case of catastrophic failures. Default: false.
    #collectDumpOn: 'onAbortOnly' # 'onAbortOnly' | 'always' | 'never'. Optional. Use when diagnosticsEnabled = true. Collect process dump and attach to test run report. Default: onAbortOnly.
    #rerunFailedTests: False # boolean. Rerun failed tests. Default: False.
    #rerunType: 'basedOnTestFailurePercentage' # 'basedOnTestFailurePercentage' | 'basedOnTestFailureCount'. Optional. Use when rerunFailedTests = true. Do not rerun if test failures exceed specified threshold. Default: basedOnTestFailurePercentage.
    #rerunFailedThreshold: '30' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. % failure. Default: 30.
    #rerunFailedTestCasesMaxLimit: '5' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailureCount. # of failed tests. Default: 5.
    #rerunMaxAttempts: '3' # string. Optional. Use when rerunFailedTests = true. Maximum # of attempts. Default: 3.
  # Advanced execution options
    #distributionBatchType: 'basedOnTestCases' # 'basedOnTestCases' | 'basedOnExecutionTime' | 'basedOnAssembly'. Batch tests. Default: basedOnTestCases.
    #batchingBasedOnAgentsOption: 'autoBatchSize' # 'autoBatchSize' | 'customBatchSize'. Optional. Use when distributionBatchType = basedOnTestCases. Batch options. Default: autoBatchSize.
    #customBatchSizeValue: '10' # string. Required when distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Number of tests per batch. Default: 10.
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # 'autoBatchSize' | 'customTimeBatchSize'. Optional. Use when distributionBatchType = basedOnExecutionTime. Batch options. Default: autoBatchSize.
    #customRunTimePerBatchValue: '60' # string. Required when distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Running time (sec) per batch. Default: 60.
    #dontDistribute: False # boolean. Replicate tests instead of distributing when multiple agents are used in the job. Default: False.
  # Reporting options
    #testRunTitle: # string. Test run title. 
    #platform: # string. Build platform. 
    #configuration: # string. Build configuration. 
    #publishRunAttachments: true # boolean. Upload test attachments. Default: true.
    #failOnMinTestsNotRun: False # boolean. Fail the task if a minimum number of tests are not run. Default: False.
    #minimumExpectedTests: '1' # string. Optional. Use when failOnMinTestsNotRun = true. Minimum # of tests. Default: 1.

Eingänge

azureSubscription - Azure Resource Manager-Verbindung
Eingabealias: ConnectedServiceName. string.

Geben Sie eine Azure Resource Manager-Dienstverbindung an, die mit dem Workload-Identitätsverbund konfiguriert ist, um AzurePipelinesCredential- in Integrationstests zu verwenden. Weitere Informationen finden Sie unter Verwenden von AzurePipelinesCredential in Integrationstests.

Anmerkung

Diese Eingabe unterstützt nur ARM-Dienstverbindungen, die für die Verwendung des Workload-Identitätsverbunds konfiguriert sind.


testSelector - Auswählen von Tests mithilfe von
string. Erforderlich. Zulässige Werte: testAssemblies (Testassemblys), testPlan (Testplan), testRun (Testlauf). Standardwert: testAssemblies.

  • Testassembly: Gibt mindestens eine Testassembly an, die Ihre Tests enthalten. Sie können optional ein Filterkriterium angeben, um nur bestimmte Tests auszuwählen.
  • Testplan: Führt Tests aus Ihrem Testplan aus, die eine automatisierte Testmethode zugeordnet haben. Weitere Informationen zum Zuordnen von Tests zu einer Arbeitsaufgabe für Testfälle finden Sie unter Zuordnen von automatisierten Tests zu Testfällen.
  • Testausführung: Verwenden Sie diese Option, wenn Sie eine Umgebung einrichten, um Tests von Testplänenauszuführen. Diese Option sollte nicht verwendet werden, wenn Tests in einer kontinuierlichen Integrations-/fortlaufenden Bereitstellungspipeline (CI/CD) ausgeführt werden.

testAssemblyVer2 - Testdateien
string. Erforderlich, wenn testSelector = testAssemblies. Standardwert: **\bin\**\*test.dll\n**\bin\**\*tests.dll.

Führt Tests aus den angegebenen Dateien aus. Sortierte Tests und Webtests können ausgeführt werden, indem die dateien .orderedtest bzw. .webtest angegeben werden. Um .webtestauszuführen, ist Visual Studio 2017 Update 4 oder höher erforderlich. Die Dateipfade sind relativ zum Suchordner. Diese Eingabe unterstützt mehrere Zeilen Miniübereinstimmungsmuster.

# Example
- task: VSTest@3
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test*.dll
      !**\*TestAdapter.dll
      !**\obj\**

testPlan - Testplan
string. Erforderlich, wenn testSelector = testPlan.

Gibt einen Testplan an, der Testsuiten mit automatisierten Testfällen enthält.


testSuite - Test suite
string. Erforderlich, wenn testSelector = testPlan.

Gibt eine oder mehrere Testsuiten an, die automatisierte Testfälle enthalten. Arbeitsaufgaben für Testfälle müssen einer automatisierten Testmethodezugeordnet werden.


testConfiguration - Testkonfiguration
string. Erforderlich, wenn testSelector = testPlan.

Gibt die Testkonfiguration an.


tcmTestRun - Testausführung
string. Wahlfrei. Wird verwendet, wenn testSelector = testRun. Standardwert: $(test.RunId).

Gibt die testausführungsbasierte Auswahl an, die beim Auslösen automatisierter Testläufe aus Testplänenverwendet wird. Diese Option kann nicht für die Ausführung von Tests in der CI/CD-Pipeline verwendet werden.


searchFolder - Suchordner
string. Erforderlich. Standardwert: $(System.DefaultWorkingDirectory).

Gibt den Ordner an, der nach den Testassemblys gesucht werden soll.


resultsFolder - Ordner "Testergebnisse"
string. Standardwert: $(Agent.TempDirectory)\TestResults.

Gibt den Ordner an, in dem Testergebnisse gespeichert werden sollen. Wenn Sie das Standardverzeichnis verwenden, wird es am Ende einer Pipelineausführung bereinigt. Das Ergebnisverzeichnis wird immer zu Beginn der aufgabe vstest bereinigt, bevor die Tests ausgeführt werden. Der relative Ordnerpfad (sofern angegeben) wird relativ zu $(Agent.TempDirectory)betrachtet.


testFiltercriteria - Testfilterkriterien
string. Wahlfrei. Wird verwendet, wenn testSelector = testAssemblies.

Gibt zusätzliche Kriterien zum Filtern von Tests aus Testassemblys an. Beispiel: Priority=1|Name=MyTestMethod. Erfahren Sie mehr über Befehlszeilenoptionen.


runOnlyImpactedTests - Nur betroffene Tests ausführen
boolean. Wahlfrei. Wird verwendet, wenn testSelector = testAssemblies. Standardwert: False.

Gibt automatisch die erforderlichen Tests an, um die Codeänderung zu überprüfen, und führt sie aus. Erfahren Sie mehr über die Verwendung Test Impact Analysis.


runAllTestsAfterXBuilds - Anzahl der Builds, nach denen alle Tests
string. Wahlfrei. Wird verwendet, wenn testSelector = testAssemblies && runOnlyImpactedTests = true. Standardwert: 50.

Gibt die Anzahl der Builds an, die ausgeführt werden sollen, bevor alle Tests automatisch ausgeführt werden. Die Testauswirkungsanalyse speichert die Zuordnung zwischen Testfällen und Quellcode. Es wird empfohlen, die Zuordnung zu regenerieren, indem alle Tests regelmäßig ausgeführt werden.


uiTests - Testmix enthält UI-Tests
boolean. Standardwert: false.

Um UI-Tests auszuführen, stellen Sie sicher, dass der Agent im interaktiven Modus ausgeführt wird, mit aktivierter autologon aktiviert ist. Das Einrichten eines Agents für die interaktive Ausführung muss erfolgen, bevor das Build/Release in die Warteschlange gestellt wird. Wenn Sie dieses Kontrollkästchen aktivieren, wird der Agent nicht automatisch im interaktiven Modus konfiguriert. Diese Option dient als Erinnerung, um den Agent entsprechend zu konfigurieren, um Fehler zu vermeiden. Gehostete Windows-Agents aus den VS 2015- und 2017-Pools können zum Ausführen von UI-Tests verwendet werden.


vstestLocationMethod - Auswählen der Testplattform mithilfe von
string. Zulässige Werte: version, location (spezifischer Speicherort). Standardwert: version.

Gibt an, welche Testplattform verwendet werden soll.


vsTestVersion - Testplattformversion
string. Wahlfrei. Wird verwendet, wenn vstestLocationMethod = version. Zulässige Werte: latest, 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (vom Installationsprogramm für Tools installiert). Standardwert: latest.

Gibt die zu verwendende Version von Visual Studio Test an. Wenn neuesten angegeben ist, wählt diese Eingabe die neueste Version (aus der Liste der zulässigen Werte) aus, die installiert ist. Um Tests auszuführen, ohne Visual Studio für den Agent zu benötigen, verwenden Sie die Option Vom Tools-Installationsprogramm installiert Option. Achten Sie darauf, den Visual Studio Test Platform Installer Aufgabe einzuschließen, um die Testplattform von NuGet zu erwerben.


vstestLocation - Pfad zu vstest.console.exe
string. Wahlfrei. Wird verwendet, wenn vstestLocationMethod = location.

Gibt den Pfad zu VSTest an.


runSettingsFile - Einstellungsdatei
string.

Gibt den Pfad zu einer runsettings- oder testsettings-Datei an, die mit den Tests verwendet werden soll. Verwenden Sie für Visual Studio 15.7 und höher runsettings für alle Testtypen. Erfahren Sie mehr über Konvertieren einer .testsettings Datei in eine .runsettings Datei.


overrideTestrunParameters - Außerkraftsetzen von Testausführungsparametern
string.

Überschreibt die im TestRunParameters Abschnitt einer runsettings Datei oder im Properties Abschnitt einer testsettings Datei definierten Parameter. Beispiel: -key1 value1 -key2 value2. Hinweis: auf in einer testsettings Datei angegebene Eigenschaften können über die TestContext mit Visual Studio 2017 (Update 4 oder höher) zugegriffen werden.


pathtoCustomTestAdapters - Pfad zu benutzerdefinierten Testadaptern
string.

Gibt den Verzeichnispfad zu benutzerdefinierten Testadaptern an. Adapter, die sich im selben Ordner wie die Testassemblys befinden, werden automatisch ermittelt.


runInParallel - Parallele Ausführung von Tests auf Multi-Core-Computern
boolean. Standardwert: False.

Bei Festlegung auf truewerden Tests parallel ausgeführt und nutzen verfügbare Kerne des Computers. Dadurch wird die MaxCpuCount außer Kraft setzen, wenn sie in Ihrer runsettings Datei angegeben ist. Erfahren Sie mehr darüber, wie Tests parallelausgeführt werden.


runTestsInIsolation - Ausführen von Tests
boolean. Standardwert: False.

Führt die Tests in einem isolierten Prozess aus. Dies führt wahrscheinlich zu weniger Fehlern im vstest.console.exe Testprozess, aber Tests können langsamer ausgeführt werden. Diese Option kann derzeit nicht verwendet werden, wenn sie mit der Einstellung für den Multi-Agent-Auftrag ausgeführt wird.


codeCoverageEnabled - Codeabdeckung aktiviert
boolean. Standardwert: False.

Sammelt Codeabdeckungsinformationen aus der Testausführung.


otherConsoleOptions - Andere Konsolenoptionen
string.

Andere Konsolenoptionen, die an vstest.console.exeübergeben werden können.

Diese Optionen werden nicht unterstützt und werden ignoriert, wenn Tests mithilfe der option Multi-Agent parallel Einstellung eines Agentauftrags ausgeführt werden, wenn Tests mithilfe des Testplans oder Option "Test ausführen" oder wenn eine benutzerdefinierte Batchverarbeitungsoption ausgewählt ist. Die Optionen können stattdessen mithilfe einer Einstellungsdatei angegeben werden.


distributionBatchType - Batchtests
string. Zulässige Werte: basedOnTestCases (basierend auf der Anzahl der Tests und Agents), basedOnExecutionTime (basierend auf der letzten Laufzeit von Tests), basedOnAssembly (basierend auf Testassemblys). Standardwert: basedOnTestCases.

Ein Batch ist eine Gruppe von Tests. Ein Testbatch führt seine Tests gleichzeitig aus, und die Ergebnisse werden für den Batch veröffentlicht. Wenn der Auftrag, in dem die Aufgabe ausgeführt wird, für die Verwendung mehrerer Agents festgelegt ist, nimmt jeder Agent alle verfügbaren Testbatches zur parallelen Ausführung auf. Ein Batch kann ausgeführt werden:

basierend auf der Anzahl der Tests und Agenten. Einfache Batchverarbeitung basierend auf der Anzahl der Tests und Agents, die an der Testausführung teilnehmen.

basierend auf der letzten Laufzeit von Tests. Bei dieser Batchverarbeitung wird die vergangene Laufzeit berücksichtigt, um Batches von Tests zu erstellen, bei denen jeder Batch ungefähr die gleiche Laufzeit hat.

basierend auf Testassemblys. Tests aus einer Assembly werden zusammen gestapelt.


batchingBasedOnAgentsOption - Batchoptionen
string. Wahlfrei. Wird verwendet, wenn distributionBatchType = basedOnTestCases. Zulässige Werte: autoBatchSize (Die Batchgröße automatisch bestimmen), customBatchSize (Batchgröße angeben). Standardwert: autoBatchSize.

Gibt eine einfache Batchverarbeitung basierend auf der Anzahl der Tests und Agents an, die an der Testausführung teilnehmen. Wenn die Batchgröße automatisch bestimmt wird, enthält jeder Batch (total number of tests / number of agents) Tests. Wenn eine Batchgröße angegeben ist, enthält jeder Batch die angegebene Anzahl von Tests.


customBatchSizeValue - Anzahl der Tests pro Batch-
string. Erforderlich, wenn distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Standardwert: 10.

Gibt die Batchgröße an.


batchingBasedOnExecutionTimeOption - Batchoptionen
string. Wahlfrei. Wird verwendet, wenn distributionBatchType = basedOnExecutionTime. Zulässige Werte: autoBatchSize (Die Batchzeit automatisch bestimmen), customTimeBatchSize (Laufzeit pro Batch angeben). Standardwert: autoBatchSize.

Bei dieser Batchverarbeitung werden vergangene Laufzeiten berücksichtigt, um Batches von Tests zu erstellen, bei denen jeder Batch ungefähr die gleiche Laufzeit hat. Schnelllauftests werden zusammengestapelt, während länger ausgeführte Tests zu einem separaten Batch gehören können. Wenn diese Option mit der Einstellung für den Multi-Agent-Auftrag verwendet wird, wird die Gesamttestzeit auf ein Minimum reduziert.


customRunTimePerBatchValue - Laufzeit (Sek.) pro Batch-
string. Erforderlich, wenn distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Standardwert: 60.

Gibt die Laufzeit (in Sekunden) pro Batch an.


dontDistribute - Replizieren von Tests anstelle der Verteilung, wenn mehrere Agents im Auftrag verwendet werden
boolean. Standardwert: False.

Wenn Sie diese Option auswählen, werden Keine Tests über Agents verteilt, wenn die Aufgabe in einem Multi-Agent-Auftrag ausgeführt wird. Jeder der ausgewählten Tests wird auf jedem Agent wiederholt. Diese Option gilt nicht, wenn der Agentauftrag so konfiguriert ist, dass er ohne Parallelität oder mit der Multikonfigurationsoption ausgeführt wird.


testRunTitle - Titel der Testausführung
string.

Gibt einen Namen für die Testausführung an.


platform - Buildplattform-
string.

Gibt die Buildplattform an, für die die Tests gemeldet werden sollen. Wenn Sie eine Variable für die Plattform in Ihrer Buildaufgabe definiert haben, verwenden Sie diese mit dieser Eingabe.


configuration - Buildkonfiguration
string.

Gibt die Buildkonfiguration an, für die die Tests gemeldet werden sollen. Wenn Sie eine Variable für die Konfiguration in Ihrer Buildaufgabe definiert haben, verwenden Sie diese mit dieser Eingabe.


publishRunAttachments - Hochladen von Testanlagen
boolean. Standardwert: true.

Opts in or out of publishing run level attachments.


failOnMinTestsNotRun - Führen Sie die Aufgabe fehl, wenn keine Mindestanzahl von Tests ausgeführt wird.
boolean. Standardwert: False.

Schlägt die Aufgabe fehl, wenn eine Mindestanzahl von Tests nicht ausgeführt wird. Dies kann nützlich sein, wenn Änderungen an Vorgangseingaben oder zugrunde liegenden Testadapterabhängigkeiten nur zu einer Teilmenge der gewünschten Tests führen.


minimumExpectedTests - Mindestanzahl von Tests
string. Wahlfrei. Wird verwendet, wenn failOnMinTestsNotRun = true. Standardwert: 1.

Gibt die Mindestanzahl der Tests an, die ausgeführt werden sollen, damit die Aufgabe erfolgreich ausgeführt werden kann. Die ausgeführten Gesamttests werden als Summe der bestandenen, fehlgeschlagenen und abgebrochenen Tests berechnet.


diagnosticsEnabled - Erfassen der erweiterten Diagnose bei katastrophalen Fehlern
boolean. Standardwert: false.

Sammelt Diagnosedaten zur Behandlung katastrophaler Fehler, z. B. eines Testabsturzes. Wenn diese Option aktiviert ist, wird eine SEQUENZ-XML-Datei generiert und an die Testausführung angefügt. Die Sequenzdatei enthält Informationen über die Sequenz, in der die Tests ausgeführt wurden, sodass ein potenzieller Schuldiger identifiziert werden kann.


collectDumpOn - Erfassen des Prozessabbilds und Anfügen an testausführungsberichte
string. Wahlfrei. Wird verwendet, wenn diagnosticsEnabled = true. Zulässige Werte: onAbortOnly (nur bei Abbruch), always, never. Standardwert: onAbortOnly.

Sammelt ein Miniabbild, das zur weiteren Analyse verwendet werden kann.

  • onAbortOnly – ein Miniabbild wird nur gesammelt, wenn die Testausführung abgebrochen wird.
  • Always – ein Miniabbild wird immer erfasst, unabhängig davon, ob die Testausführung abgeschlossen ist oder nicht.
  • Niemals – ein Miniabbild wird unabhängig davon, ob die Testausführung abgeschlossen ist oder nicht, nicht erfasst.

rerunFailedTests - Wiederholen fehlgeschlagener Tests
boolean. Standardwert: False.

Führen Sie alle fehlgeschlagenen Tests erneut aus, bis sie bestehen oder bis die maximale Anzahl von Versuchen erreicht ist.


rerunType - Nicht erneut ausführen, wenn Testfehler den angegebenen Schwellenwert überschreiten
string. Wahlfrei. Wird verwendet, wenn rerunFailedTests = true. Zulässige Werte: basedOnTestFailurePercentage (% Fehler), basedOnTestFailureCount (Anzahl der fehlgeschlagenen Tests). Standardwert: basedOnTestFailurePercentage.

Verhindert das erneute Ausführen von Tests, wenn die Fehlerrate den angegebenen Schwellenwert überschreitet. Dies gilt, wenn Umgebungsprobleme zu massiven Fehlern führen. Sie können den Prozentsatz der Fehler oder die Anzahl der fehlgeschlagenen Tests als Schwellenwert angeben.


rerunFailedThreshold - % Fehler
string. Wahlfrei. Wird verwendet, wenn rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. Standardwert: 30.

Verhindert das erneute Ausführen von Tests, wenn der Prozentsatz der fehlgeschlagenen Testfälle den angegebenen Schwellenwert überschreitet. Dies gilt, wenn Umgebungsprobleme zu massiven Fehlern führen.


rerunFailedTestCasesMaxLimit - Anzahl fehlgeschlagener Tests
string. Wahlfrei. Wird verwendet, wenn rerunFailedTests = true && rerunType = basedOnTestFailureCount. Standardwert: 5.

Verhindert das erneute Ausführen von Tests, wenn die Anzahl der fehlgeschlagenen Testfälle den angegebenen Grenzwert überschreitet. Dies gilt, wenn Umgebungsprobleme zu massiven Fehlern führen.


rerunMaxAttempts - Maximale Anzahl von Versuchen
string. Wahlfrei. Wird verwendet, wenn rerunFailedTests = true. Standardwert: 3.

Gibt die maximale Anzahl von Wiederholungsversuchen für einen fehlgeschlagenen Test an.Specifies the maximum number of times a failed test should be retried. Wenn ein Test erfolgreich ist, bevor die maximale Anzahl von Versuchen erreicht wird, wird er nicht erneut ausgeführt.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Nichts.

Bemerkungen

Verwenden Sie diese Aufgabe, um Komponenten- und Funktionstests (Selenium, Appium, Coded UI-Test und mehr) mit dem Visual Studio Test runner auszuführen. Zusammen mit MSTest-basierten Tests können Testframeworks mit einem Visual Studio-Testadapter auch ausgeführt werden, z. B. xUnit, NUnit oder Chutzpah.

Tests, die das .NET Core Framework-Ziel ausführen kann, indem der entsprechende Zielframeworkwert in der datei .runsettingsangegeben wird.

Tests können mit Version 2 dieser Aufgabe auf mehrere Agents verteilt werden. Weitere Informationen finden Sie unter Ausführen von Tests parallel mit der Visual Studio Test-Aufgabe.

Überprüfen der Voraussetzungen

Wenn Sie einen selbst gehosteten Windows-Agent verwenden, muss diese Voraussetzung installiert werden:

Inanspruchnahme

Der Agent muss über die folgende Funktion verfügen:

vstest

Die Vstest-Nachfrage kann auf zwei Arten erfüllt werden:

  1. Visual Studio wird auf dem Agentcomputer installiert.
  2. Mithilfe der aufgabe Visual Studio Test Platform Installer in der Pipelinedefinition.

Wie kann ich Tests ausführen, die TestCase als Datenquelle verwenden?

Um automatisierte Tests auszuführen, die TestCase als Datenquelle verwenden, ist Folgendes erforderlich:

  1. Sie müssen Visual Studio 2017.6 oder höher auf dem Agentcomputer haben. Visual Studio Test Platform Installer-Aufgabe kann nicht zum Ausführen von Tests verwendet werden, die TestCase als Datenquelle verwenden.
  2. Erstellen Sie eine PAT-, die für den Bereich "Arbeitsaufgaben (vollständig)" autorisiert ist.
  3. Fügen Sie eine sichere Build- oder Releasevariable namens Test.TestCaseAccessToken hinzu, wobei der wert auf das im vorherigen Schritt erstellte PAT festgelegt ist.

Beim Ausführen von datengesteuerten xUnit- und NUnit-Tests mit einigen der Aufgabenoptionen treten Probleme auf. Gibt es bekannte Einschränkungen?

Datengesteuerte Tests, die xUnit- und NUnit-Testframeworks verwenden, weisen einige bekannte Einschränkungen auf und können nicht mit den folgenden Aufgabenoptionen verwendet werden:

  1. Fehler beim Erneuten Ausführen von Tests.
  2. Verteilen von Tests auf mehrere Agents und Batchoptionen.
  3. Testen der Auswirkungsanalyse.

Die oben genannten Einschränkungen sind darauf zurückzuführen, wie die Adapter für diese Testframeworks datengesteuerte Tests ermitteln und melden.

Unterstützt die VSTest-Aufgabe die Ausführung von Tests, die auf mehrere Zielframeworks gleichzeitig abzielen?

Ja, ab Version 17.3 VSTest unterstützt die Ausführung von Tests, die auf mehrere Zielframeworks gleichzeitig abzielen. Zuvor war dies aufgrund einer Einschränkung der VSTest-Plattform Nicht möglich.

Wenn Sie Tests ausführen möchten, die zu mehreren Zielframeworks gehören, müssen Sie eine kompatible Version von VSTest über Visual Studio Test Platform Installer installieren und vsTestVersion auf toolsInstaller festlegen, um es zu verwenden.

Beim Veröffentlichen des Testergebnisses wird dieser Fehler angezeigt: Fehler beim Veröffentlichen von Testergebnissen: Ungültige Priorität angegeben?

Dieser Fehler tritt auf, wenn eine der Testmethoden vorrang vor 255 hat, die Priorität der Testmethode im Code beheben und die Tests erneut ausführen. Sie können die generierte TRX-Datei überprüfen, um alle Tests mit einer Priorität von mehr als 255 anzuzeigen.

Verwenden von AzurePipelinesCredential in Integrationstests

Die Azure Identity-Bibliotheken für .NET, C++, Go, Java, JavaScript und Python bieten Unterstützung für den Workload-Identitätsverbund, sodass code, der über die AzureCLI@2 und AzurePowerShell@5 Aufgaben ausgeführt wird, sich mit Microsoft Entra-ID (z. B. für den Zugriff auf Azure) mithilfe der AzurePipelinesCredential-Klasse authentifizieren kann.

Viele Kunden verwenden Azure SDK-Clientbibliotheken in Integrationstests, die von anderen Aufgaben aufgerufen werden. Die aufgaben DotNetCoreCLI@2, Maven@4 und VSTest@3 können mithilfe der AzurePipelinesCredential Klasse auf Azure-Ressourcen zugreifen.

Sie können die eigenschaft connectedService auf eine Mit Workload Identity Federation konfigurierte Azure-Dienstverbindung festlegen. Für die AzurePipelinesCredential muss SYSTEM_ACCESSTOKEN festgelegt werden.

Das folgende Beispiel zeigt die connectedService Eingabe für den DotNetCoreCLI@2 Vorgang. VSTest@3 und Maven@4 Verwendung ist ähnlich.

- task: DotNetCoreCLI@2
  inputs:
    command: 'run'
    connectedService: <Azure service connection configured with workload identity federation>
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)

Weitere Informationen zu AzurePipelinesCredentialfinden Sie in diesem Verbessern des Sicherheitsstatus in Azure-Dienstverbindungen mit AzurePipelinesCredential.

Anforderungen

Anforderung Beschreibung
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Self-hosted agents must have capabilities that match the following anforderungen to run jobs that use this task: vstest:
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.144.0 oder höher
Vorgangskategorie Test