Delen via


Problemen met Microsoft.Testing.Platform oplossen

Dit artikel bevat richtlijnen voor probleemoplossing voor Microsoft.Testing.Platform.

Afsluitcodes

Microsoft.Testing.Platform gebruikt bekende afsluitcodes om testfouten of app-fouten te communiceren. Afsluitcodes beginnen bij 0 en zijn niet-negatief.

Afsluitcode Bijzonderheden
0 De 0 afsluitcode geeft aan dat het is gelukt. Alle tests die zijn gekozen om te worden uitgevoerd, zijn voltooid en er zijn geen fouten opgetreden.
1 De 1 afsluitcode geeft onbekende fouten aan en fungeert als een catch all. Als u aanvullende foutinformatie en details wilt vinden, kijkt u in de uitvoer.
2 Er wordt een afsluitcode van 2 gebruikt om aan te geven dat er ten minste één testfout is opgetreden.
3 De afsluitcode 3 geeft aan dat de testsessie is afgebroken. Een sessie kan worden afgebroken met Ctrl+C, bijvoorbeeld.
4 De afsluitcode 4 geeft aan dat de installatie van gebruikte extensies ongeldig is en dat de testsessie niet kan worden uitgevoerd.
5 De afsluitcode 5 geeft aan dat de opdrachtregelargumenten die aan de test-app zijn doorgegeven, ongeldig zijn.
6 De afsluitcode 6 geeft aan dat de testsessie een niet-geïmplementeerde functie gebruikt.
7 De afsluitcode 7 geeft aan dat een testsessie niet kan worden voltooid en waarschijnlijk is vastgelopen. Het is mogelijk dat dit is veroorzaakt door een testsessie die is uitgevoerd via het uitbreidingspunt van een testcontroller.
8 De afsluitcode 8 geeft aan dat de testsessie nul tests heeft uitgevoerd.
9 De afsluitcode 9 geeft aan dat het minimale uitvoeringsbeleid voor de uitgevoerde tests is geschonden.
10 De afsluitcode 10 geeft aan dat de testadapter, Testing.Platform Test Framework, MSTest, NUnit of xUnit, geen tests heeft uitgevoerd om een infrastructuurreden die niet is gerelateerd aan de zelf van de test. Een voorbeeld is het niet kunnen creëren van een testomgeving die nodig is voor tests.
11 De afsluitcode 11 geeft aan dat het testproces wordt afgesloten als het afhankelijke proces wordt afgesloten.
12 De afsluitcode 12 geeft aan dat de testsessie niet kan worden uitgevoerd omdat de client geen ondersteuning biedt voor een van de ondersteunde protocolversies.
13 De afsluitcode 13 geeft aan dat de testsessie is gestopt omdat het opgegeven aantal mislukte tests is bereikt met behulp van --maximum-failed-tests de opdrachtregeloptie. Zie de sectie Opties in Microsoft.Testing.Platform CLI-opties voor meer informatie

Zie Diagnostische logboekregistratie om uitgebreide logboekregistratie in te schakelen en problemen op te lossen.

Specifieke afsluitcodes negeren

Microsoft.Testing.Platform is standaard ontworpen om strikt te zijn, maar biedt configuratiemogelijkheden. Het is daarom mogelijk dat gebruikers bepalen welke afsluitcodes moeten worden genegeerd (er wordt een afsluitcode 0 geretourneerd in plaats van de oorspronkelijke afsluitcode).

Als u specifieke afsluitcodes wilt negeren, gebruikt u de --ignore-exit-code opdrachtregeloptie of de TESTINGPLATFORM_EXITCODE_IGNORE omgevingsvariabele. De geldige indeling die wordt geaccepteerd, is een door puntkomma's gescheiden lijst met afsluitcodes die moeten worden genegeerd (bijvoorbeeld --ignore-exit-code 2;3;8). Een veelvoorkomend scenario is om te overwegen dat testfouten niet resulteren in een niet-nul-afsluitcode (die overeenkomt met het negeren van afsluitcode 2).

Diagnostische logboeken

Het platform biedt ingebouwde logboekregistratie voor diagnostische gegevens om u te helpen bij het oplossen van problemen met de testuitvoering. U kunt diagnostische logboekregistratie inschakelen via opdrachtregelopties of omgevingsvariabelen.

Opdrachtregelopties

De volgende platformopties nuttige informatie bieden voor het oplossen van problemen met uw test-apps:

  • --info
  • --diagnostic
  • --diagnostic-synchronous-write
  • --diagnostic-verbosity
  • --diagnostic-file-prefix
  • --diagnostic-output-directory

Omgevingsvariabelen

U kunt de diagnostische logboeken ook inschakelen met behulp van de omgevingsvariabelen:

Naam van omgevingsvariabele Description
TESTINGPLATFORM_DIAGNOSTIC Als deze optie is ingesteld op 1, schakelt u de diagnostische logboekregistratie in.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY Definieert het uitgebreidheidsniveau. De beschikbare waarden zijn Trace, Debug, Information, Warning, Errorof Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY De uitvoermap van de diagnostische logboekregistratie, indien niet opgegeven, wordt het bestand gegenereerd in de standaardmap TestResults map.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX Het voorvoegsel voor de naam van het logboekbestand. Standaardwaarde is "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE Dwingt de ingebouwde bestandslogger om logboeken synchroon te schrijven. Handig voor scenario's waarin u geen logboekvermeldingen wilt verliezen (als het proces vastloopt). Dit vertraagt de uitvoering van de test.

Opmerking

Omgevingsvariabelen hebben voorrang op de opdrachtregelargumenten.

Configuratiefouten oplossen

Microsoft.Testing.Platform.MSBuild

Hieronder volgen veelvoorkomende configuratiefouten met betrekking tot Microsoft.Testing.Platform.MSBuild.

fout CS8892: Methode 'TestingPlatformEntryPoint.Main(string[])' wordt niet gebruikt als invoerpunt omdat er een synchroon toegangspunt Program.Main(string[]) is gevonden

Handmatig een toegangspunt (Main) definiëren in een testproject of verwijzen naar een testproject vanuit een toepassing die al een ingangspunt heeft, resulteert in een conflict met het toegangspunt dat is gegenereerd door Microsoft.Testing.Platform. Voer een van de volgende stappen uit om dit probleem te voorkomen:

  • Verwijder het handmatig gedefinieerde toegangspunt, meestal Main methode in Program.csen laat het testplatform er een voor u genereren.

  • Schakel het genereren van het toegangspunt uit door de eigenschap <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> MSBuild in te stellen.

  • Schakel de transitieve afhankelijkheid volledig uit naar Microsoft.Testing.Platform.MSBuild door de eigenschap <IsTestingPlatformApplication>false</IsTestingPlatformApplication> MSBuild in het project in te stellen die verwijst naar een testproject. Dit is nodig wanneer u naar een testproject verwijst vanuit een niet-testproject, bijvoorbeeld een console-app die verwijst naar een testtoepassing.

Microsoft.Testing.Extensions.Fakes

Fout Mislukt kan profiler-pad niet oplossen vanuit COR_PROFILER_PATH en COR_PROFILER omgevingsvariabele.

Deze fout kan optreden als niet alle Fakes-assemblies aanwezig zijn in de bin-map.

  • Zorg ervoor dat het project of gebruikmaakt van de MSTest.SDK- of verwijst naar Microsoft.Testing.Extensions.Fakes.
  • Voor .NET Framework-projecten moet u voorkomen dat u <PlatformTarget>AnyCPU</PlatformTarget> instelt, omdat hierdoor niet alle bestanden naar de bin-map worden gekopieerd.