VSTest Bridge-extensie

Deze extensie biedt een compatibiliteitslaag met VSTest, waardoor testframeworks die al met VSTest zijn geïmplementeerd, kunnen:

  • Eenvoudig uitvoeren met Microsoft. Testing.Platform (MTP) zonder een belangrijke herschrijven.
  • Ondersteuning voor zowel VSTest als MTP met dezelfde implementatie van het testframework.

Deze extensie wordt geleverd als onderdeel van het NuGet-pakket Microsoft.Testing.Extensions.VSTestBridge .

Compatibiliteit met VSTest

Het belangrijkste doel van deze extensie is om een eenvoudige en soepele upgrade-ervaring te bieden voor VSTest-gebruikers door een dubbele modus toe te staan waarin het nieuwe platform is ingeschakeld en parallel een compatibiliteitsmodus wordt aangeboden om de gebruikelijke werkstromen te laten werken.

Ondersteuning voor Runsettings

Met deze extensie kunt u een VSTest .runsettings bestandaanleveren, maar niet alle opties in dit bestand worden door het platform verwerkt. Hieronder worden de ondersteunde en niet-ondersteunde instellingen, configuratieopties en alternatieven beschreven voor de meest gebruikte VSTest-configuratieopties.

Wanneer dit is ingeschakeld door het testframework, kunt u --settings <SETTINGS_FILE> gebruiken om het .runsettings-bestand op te geven.

RunConfiguratie-element

De volgende RunConfiguration-elementen worden niet ondersteund door MTP:

Knoop Beschrijving Reden / Tijdelijke oplossing
MaxCpuCount Deze instelling bepaalt het niveau van parallelle uitvoering op procesniveau. Gebruik 0 om parallelle uitvoering op procesniveau in te schakelen. Wanneer MTP wordt gebruikt met MSBuild, wordt deze optie uitbesteed aan MSBuild. Wanneer één uitvoerbaar bestand wordt uitgevoerd, heeft deze optie geen betekenis voor MTP.
ResultatenDirectory De map waarin testresultaten worden geplaatst. Het pad is relatief ten opzichte van de map die het bestand .runsettings bevat. Gebruik de opdrachtregeloptie --results-directory om te bepalen waar de testresultaten worden geplaatst. Als de opgegeven map niet bestaat, wordt deze gemaakt. De standaardwaarde is TestResults in de map die de testtoepassing bevat.
TargetFrameworkVersion Met deze instelling definieert u de frameworkversie of frameworkfamilie die moet worden gebruikt om tests uit te voeren. Deze optie wordt genegeerd. De eigenschappen van de <TargetFramework> of <TargetFrameworks> MSBuild bepalen het doelframework van de toepassing. De tests worden gehost in de uiteindelijke toepassing.
TargetPlatform- Deze instelling definieert de architectuur die moet worden gebruikt voor het uitvoeren van tests. <RuntimeIdentifier> bepaalt de architectuur van de uiteindelijke toepassing die als host fungeert voor de tests.
BehandelTestAdapterFoutenAlsWaarschuwingen Onderdrukt testadapterfouten zodat ze als waarschuwingen worden weergegeven. Met MTP kan slechts één type test vanuit één assembly worden uitgevoerd, en een fout bij het laden van het testframework of andere delen van de infrastructuur wordt onoverkomelijk, omdat dit aantoont dat sommige tests niet konden worden gedetecteerd of uitgevoerd.
TestadaptersPaden Een of meer paden naar de map waar de TestAdapters zich bevinden MTP maakt geen gebruik van het concept van testadapters en staat het dynamisch laden van extensies niet toe, tenzij ze deel uitmaken van de build en geregistreerd zijn in Program.cs, hetzij automatisch via build-targets, hetzij handmatig.
TestCaseFilter Een filter om tests te beperken die worden uitgevoerd. Vanaf v1.6 wordt deze runettings-vermelding nu ondersteund. Voor deze versie moet u in plaats daarvan --filter opdrachtregeloptie gebruiken.
TestSessionTimeout Hiermee kunnen gebruikers een testsessie beëindigen wanneer deze een bepaalde time-out overschrijdt. Er is geen alternatieve optie.
DotnetHostPath Geef een aangepast pad op naar dotnet-host die wordt gebruikt om de testhost uit te voeren. MTP voert geen extra oplossing van dotnet uit. Het hangt volledig af van de manier waarop dotnet zichzelf oplost, die kan worden beheerd door omgevingsvariabelen zoals DOTNET_HOST_PATH.
BehandelGeenTestsAlsFout Afsluiten met een niet-nul exitcode wanneer er geen tests worden gevonden. MTP zal standaard een foutmelding geven wanneer er geen tests worden gedetecteerd of uitgevoerd in een testapplicatie. U kunt instellen hoeveel tests u verwacht te vinden in de assembly met behulp van --minimum-expected-tests opdrachtregelparameter, die standaard 1 is.

Gegevensverzamelaars-element

MTP maakt geen gebruik van gegevensverzamelaars. In plaats daarvan introduceert het het concept van in-process- en out-of-process-extensies. Elke extensie wordt geconfigureerd door het respectieve configuratiebestand of via de opdrachtregel.

Het allerbelangrijkste zijn de hang en crash extensies, en de codedekking extensie.

Het element LoggerRunSettings

Loggers in MTP worden geconfigureerd via opdrachtregelparameters of door instellingen in code.

Ondersteuning voor VSTest-filters

Deze extensie biedt ook de mogelijkheid om het VSTest-filtermechanisme te gebruiken om alleen de tests te detecteren of uit te voeren die overeenkomen met de filterexpressie. Voor meer informatie, kijk in de sectie Filteroptie details of voor frameworkspecifieke details de pagina Selectief unittests uitvoeren.

Wanneer dit is ingeschakeld door het testframework, kunt u --filter <FILTER_EXPRESSION>gebruiken.

Parameters voor TestRun

U kunt parameters doorgeven aan de testuitvoering met de opdrachtregeloptie --test-parameter in het formaat key=value. Deze optie kan meerdere keren worden opgegeven, één voor elke parameter die moet worden ingesteld.

Deze parameters kunnen vervolgens door het testframework worden toegegagen tijdens het uitvoeren van de test.