Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diese Aufgabe, um Unit- und Funktionstests (Selenium, Appium, Coded UI Test usw.) mit dem Visual Studio Test (VSTest) Runner durchzuführen. Man kann Testframeworks mit einem Visual Studio-Testadapter ausführen. 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.
Anmerkung
Die VSTest@3-Aufgabe kann fehlerhafte , datengetriebene Tests nur mit statischen Parametern und ohne benutzerdefinierten displayName, für MsTest-, xUnit- und nUnit-Frameworks erneut ausführen.
Anmerkung
Die VSTest Azure-Aufgabe ist spezifisch für VSTest-platform. Die neuere Microsoft.Testing.Platform (MTP) wird nicht unterstützt.
Die DotNetCoreCLI@2-Aufgabe unterstützt die Microsoft.Testing.Platform (MTP). Weitere Informationen finden Sie unter Microsoft.Testing.Platform Now Fully Supported in Azure DevOps.
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' | '18.0' | '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.
#donotPublishTestResults: false # boolean. Optional. Use when runInParallel = false. Disable publishing test results. Default: false.
#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.
# 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.
#donotPublishTestResults: false # boolean. Optional. Use when runInParallel = false. Disable publishing test results. Default: false.
#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: . .
Geben Sie eine Azure Resource Manager Serviceverbindung an, die mit der Workload Identity Federation 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.
Auswählen von Tests mithilfe von
. Erforderlich. Zulässige Werte: (Testassemblys), (Testplan), (Testlauf). Standardwert: .
- 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.
Testdateien
. Erforderlich, wenn . Standardwert: .
Führt Tests aus den angegebenen Dateien aus. Sortierte Tests und Webtests können ausgeführt werden, indem die dateien bzw. angegeben werden. Um .webtest auszuführen, wird Visual Studio Update 4 oder höher von 2017 benötigt. 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
. Erforderlich, wenn .
Gibt einen Testplan an, der Testsuiten mit automatisierten Testfällen enthält.
Testsuite
. Erforderlich, wenn .
Gibt eine oder mehrere Testsuiten an, die automatisierte Testfälle enthalten. Arbeitsaufgaben für Testfälle müssen einer automatisierten Testmethodezugeordnet werden.
Testkonfiguration
. Erforderlich, wenn .
Gibt die Testkonfiguration an.
Testausführung
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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.
Suchordner
. Erforderlich. Standardwert: .
Gibt den Ordner an, der nach den Testassemblys gesucht werden soll.
Ordner "Testergebnisse"
. Standardwert: .
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 bereinigt, bevor die Tests ausgeführt werden. Der relative Ordnerpfad (sofern angegeben) wird relativ zu betrachtet.
Testfilterkriterien
. Wahlfrei. Wird verwendet, wenn .
Gibt zusätzliche Kriterien zum Filtern von Tests aus Testassemblys an. Beispiel: . Sie können verwenden , um einen Filter zu negieren. Weitere Informationen zu Filtern und Optionen finden Sie unter Durchsuchen und Filtern der Testliste.
Erfahren Sie mehr über Befehlszeilenoptionen.
Nur betroffene Tests ausführen
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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.
Anzahl der Builds, nach denen alle Tests
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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.
Testmix enthält UI-Tests
. Standardwert: .
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-Agenten aus den VS 2015- und 2017-Pools können zur Durchführung von UI-Tests verwendet werden.
Auswählen der Testplattform mithilfe von
. Zulässige Werte: , (spezifischer Speicherort). Standardwert: .
Gibt an, welche Testplattform verwendet werden soll.
Testplattformversion
. Wahlfrei. Wird verwendet, wenn . Erlaubte Werte: latest, 18.0 (Visual Studio 2026), 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (installiert von Tools Installer). Standardwert: .
Spezifiziert die zu verwendende Version von Visual Studio Test. Wenn neuesten angegeben ist, wählt diese Eingabe die neueste Version (aus der Liste der zulässigen Werte) aus, die installiert ist. Um Tests ohne Visual Studio am Agenten durchzuführen, nutze die Option Installed by Tools installer. Stellen Sie sicher, dass Sie die Aufgabe Visual Studio Test Platform Installer einfügen, um die Testplattform von NuGet zu erhalten.
Testplattformversion
. Wahlfrei. Wird verwendet, wenn . Erlaubte Werte: latest, 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (installiert von Tools Installer). Standardwert: .
Spezifiziert die zu verwendende Version von Visual Studio Test. Wenn neuesten angegeben ist, wählt diese Eingabe die neueste Version (aus der Liste der zulässigen Werte) aus, die installiert ist. Um Tests ohne Visual Studio am Agenten durchzuführen, nutze die Option Installed by Tools installer. Stellen Sie sicher, dass Sie die Aufgabe Visual Studio Test Platform Installer einfügen, um die Testplattform von NuGet zu erhalten.
Pfad zu vstest.console.exe
. Wahlfrei. Wird verwendet, wenn .
Gibt den Pfad zu VSTest an.
Einstellungsdatei
.
Gibt den Pfad zu einer - oder -Datei an, die mit den Tests verwendet werden soll. Für Visual Studio 15,7 und höher verwenden Sie runsettings für alle Testtypen. Erfahren Sie mehr über Konvertieren einer Datei in eine Datei.
Außerkraftsetzen von Testausführungsparametern
.
Überschreibt die im Abschnitt einer Datei oder im Abschnitt einer Datei definierten Parameter. Beispiel: .
Hinweis: Eigenschaften, die in einer Datei testsettings angegeben sind, können über die TestContext mit Visual Studio 2017 (Update 4 oder höher) abgerufen werden.
Pfad zu benutzerdefinierten Testadaptern
.
Gibt den Verzeichnispfad zu benutzerdefinierten Testadaptern an. Adapter, die sich im selben Ordner wie die Testassemblys befinden, werden automatisch ermittelt.
Parallele Ausführung von Tests auf Multi-Core-Computern
. Standardwert: .
Bei Festlegung auf werden Tests parallel ausgeführt und nutzen verfügbare Kerne des Computers. Dadurch wird die außer Kraft setzen, wenn sie in Ihrer Datei angegeben ist. Erfahren Sie mehr darüber, wie Tests parallelausgeführt werden.
Ausführen von Tests
. Standardwert: .
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.
Codeabdeckung aktiviert
. Standardwert: .
Sammelt Codeabdeckungsinformationen aus der Testausführung.
Andere Konsolenoptionen
.
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.
Batchtests
. Zulässige Werte: (basierend auf der Anzahl der Tests und Agents), (basierend auf der letzten Laufzeit von Tests), (basierend auf Testassemblys). Standardwert: .
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.
Batchoptionen
. Wahlfrei. Wird verwendet, wenn . Zulässige Werte: (Die Batchgröße automatisch bestimmen), (Batchgröße angeben). Standardwert: .
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 Tests. Wenn eine Batchgröße angegeben ist, enthält jeder Batch die angegebene Anzahl von Tests.
Anzahl der Tests pro Batch-
. Erforderlich, wenn . Standardwert: .
Gibt die Batchgröße an.
Batchoptionen
. Wahlfrei. Wird verwendet, wenn . Zulässige Werte: (Die Batchzeit automatisch bestimmen), (Laufzeit pro Batch angeben). Standardwert: .
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.
Laufzeit (Sek.) pro Batch-
. Erforderlich, wenn . Standardwert: .
Gibt die Laufzeit (in Sekunden) pro Batch an.
Replizieren von Tests anstelle der Verteilung, wenn mehrere Agents im Auftrag verwendet werden
. Standardwert: .
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.
Titel der Testausführung
.
Gibt einen Namen für die Testausführung an.
Buildplattform-
.
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.
Buildkonfiguration
.
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.
Hochladen von Testanlagen
. Standardwert: .
Aktiviert oder deaktiviert die Veröffentlichung von Anhängen auf Laufebene.
Deaktivieren der Veröffentlichung von Testergebnissen
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
Wenn diese Option aktiviert ist, werden Testergebnisse im Rahmen dieser Aufgabe nicht veröffentlicht. Verwenden Sie stattdessen die Aufgabe Testergebnisse veröffentlichen.
Führen Sie die Aufgabe fehl, wenn keine Mindestanzahl von Tests ausgeführt wird.
. Standardwert: .
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.
Mindestanzahl von Tests
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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.
Erfassen der erweiterten Diagnose bei katastrophalen Fehlern
. Standardwert: .
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.
Erfassen des Prozessabbilds und Anfügen an testausführungsberichte
. Wahlfrei. Wird verwendet, wenn . Zulässige Werte: (nur bei Abbruch), , . Standardwert: .
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.
Wiederholen fehlgeschlagener Tests
. Standardwert: .
Führen Sie alle fehlgeschlagenen Tests erneut aus, bis sie bestehen oder bis die maximale Anzahl von Versuchen erreicht ist.
Nicht erneut ausführen, wenn Testfehler den angegebenen Schwellenwert überschreiten
. Wahlfrei. Wird verwendet, wenn . Zulässige Werte: (% Fehler), (Anzahl der fehlgeschlagenen Tests). Standardwert: .
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.
% Fehler
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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.
Anzahl fehlgeschlagener Tests
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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.
Maximale Anzahl von Versuchen
. Wahlfrei. Wird verwendet, wenn . Standardwert: .
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
Nutzen Sie diese Aufgabe, um Unit- und Funktionstests (Selenium, Appium, Coded UI Test und mehr) mit dem Visual Studio Test Runner durchzuführen. Neben MSTest-basierten Tests können auch Testframeworks mit einem Visual Studio-Testadapter ausgeführt werden, wie xUnit, NUnit oder Chutzpah.
Tests, die das Ziel-.NET Kernframework angeben, können durchgeführt werden, indem der passende Ziel-Framework-Wert in der .runsettings-Datei angegeben wird.
Tests können mit Version 2 dieser Aufgabe auf mehrere Agents verteilt werden. Weitere Informationen finden Sie unter Tests parallel mit der Aufgabe Visual Studio Test.
Überprüfen der Voraussetzungen
Wenn Sie einen selbstgehosteten Windows-Agenten verwenden, muss diese Voraussetzung installiert sein:
- .NET Framework 4.6.2 oder eine neuere Version
Inanspruchnahme
Der Agent muss über die folgende Funktion verfügen:
vstest
Die Vstest-Nachfrage kann auf zwei Arten erfüllt werden:
- Visual Studio wird auf dem Agentenrechner installiert.
- Durch Verwendung der Visual Studio Test Platform Installer Task in der Pipeline-Definition.
Wie kann ich Tests ausführen, die TestCase als Datenquelle verwenden?
Um automatisierte Tests auszuführen, die TestCase als Datenquelle verwenden, ist Folgendes erforderlich:
- Du musst Visual Studio 2017.6 oder höher auf dem Agentenrechner haben. Die Visual Studio Test Platform Installer-Aufgabe kann nicht verwendet werden, um Tests auszuführen, die TestCase als Datenquelle verwenden.
- Erstellen Sie eine PAT-, die für den Bereich "Arbeitsaufgaben (vollständig)" autorisiert ist.
- Fügen Sie eine sichere Build- oder Releasevariable namens hinzu, wobei der wert auf das im vorherigen Schritt erstellte PAT festgelegt ist.
Kann ich diese Aufgabe für datenbasierte (parametrisierte Tests) verwenden?
Ja. Die Aufgabe unterstützt nur datengetriebene Tests mit statischen Parametern und ohne benutzerdefinierten displayName. Es ist erforderlich, dass Sie eine Umweltvariable zu Ihrer Pipeline hinzufügen:
- Für MsTest:
- Für xUnit:
- Für nUnit:
Screenshot VSTest@3 Umgebungsvariablen für parametrisierte Tests.
Ich stoße auf Probleme, wenn ich datengesteuerte xUnit-, NUnit- und MSTest-Tests mit einigen der Aufgabenoptionen ausführe. Gibt es bekannte Einschränkungen?
Datengesteuerte Tests, die xUnit-, NUnit- und MSTest-Testframeworks verwenden, weisen einige bekannte Einschränkungen auf und können nicht mit den folgenden Aufgabenoptionen verwendet werden:
- Das erneute Durchführen fehlgeschlagener Tests für MsTest-, xUnit- und nUnit-Tests funktioniert mit datengetriebenen Tests, die statische Parameter enthalten.
- Verteilen von Tests auf mehrere Agents und Batchoptionen.
- 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 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 du Tests ausführen willst, die zu mehreren Zielframeworks gehören, musst du eine kompatible Version von VSTest über Visual Studio Test Platform Installer installieren und vsTestVersion auf toolsInstaller setzen, 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 unterstützen die Federation der Arbeitslast-Identität, sodass Code, der von den AzureCLI@2 und AzurePowerShell@5 Aufgaben ausgeführt wird, sich mit Microsoft Entra ID authentifizieren kann (zum Beispiel zum Zugriff Azure) mit der AzurePipelinesCredential Klasse.
Viele Kunden verwenden Azure SDK-Clientbibliotheken in Integrationstests, die von anderen Aufgaben ausgelöst werden. Die Aufgaben DotNetCoreCLI@2, Maven@4 und VSTest@3 können über die Klasse AzurePipelinesCredential auf Azure Ressourcen zugreifen.
Sie können die Eigenschaft connectedServiceName auf eine Azure Service-Verbindung setzen, die mit Workload Identity Federation konfiguriert ist. Für die muss SYSTEM_ACCESSTOKEN festgelegt werden.
Das folgende Beispiel zeigt die Eingabe für den Vorgang. und Verwendung ist ähnlich.
- task: DotNetCoreCLI@2
inputs:
command: 'run'
connectedServiceName: <Azure service connection configured with workload identity federation>
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Weitere Informationen zu AzurePipelinesCredential finden Sie unter Verbesserung der Sicherheitslage in Azure Service-Verbindungen 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 | Testen |