Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft.Testing.Platform gebruiken in de VSTest-modus van
In dit artikel wordt uitgelegd hoe dotnet test
wordt geïntegreerd voor Microsoft.Testing.Platform, dat wordt geleverd door Microsoft.Testing.Platform.MSBuild wanneer het wordt uitgevoerd in de VSTest-modus van dotnet test
.
Voordat u in dit artikel ingaat, is het raadzaam om eerst testen te lezen met dotnet-test, waarin de twee modi ( dotnet test
VSTest en MTP-modi) worden uitgelegd.
Maakt standaard dotnet test
gebruik van VSTest om tests uit te voeren. Om ondersteuning voor Microsoft.Testing.Platform
in dotnet test
in te schakelen, hebt u twee opties:
- Gebruik de
dotnet test
VSTest-modus en specificeer de<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
MSBuild-eigenschap in uw projectbestand. - Gebruik
dotnet test
in de MTP-modus voor meer systeemeigen ondersteuning van MTP indotnet test
, wat alleen wordt ondersteund vanaf de .NET 10 SDK.
Beide opties worden uitgebreid beschreven in het artikel Testen met dotnet-test .
Belangrijk
De rest van dit artikel is specifiek voor de VSTest-modus van dotnet test
.
Waarschuwing
Vanaf .NET 10 SDK wordt aanbevolen om de VSTest-modus van dotnet test
niet te gebruiken bij uitvoering met Microsoft.Testing.Platform.
Falingen per test weergeven
Standaard worden testfouten samengevat in een .log-bestand en wordt één fout per testproject gerapporteerd aan MSBuild.
Als u fouten per mislukte test wilt weergeven, geeft u -p:TestingPlatformShowTestsFailure=true
op de opdrachtregel op of voegt u de eigenschap <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
toe aan het projectbestand.
Op de opdrachtregel:
dotnet test -p:TestingPlatformShowTestsFailure=true
Of in projectbestand:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Volledige platformuitvoer weergeven
Standaard wordt alle console-uitvoer van het onderliggende testprogramma vastgelegd en voor de gebruiker verborgen. Dit omvat de banner, versie-informatie en opgemaakte testgegevens.
Gebruik <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
om deze informatie samen met MSBuild-uitvoer weer te geven.
Deze optie heeft geen invloed op de manier waarop het testframework gebruikersuitvoer vastlegt die is geschreven door Console.WriteLine
of andere vergelijkbare manieren om naar de console te schrijven.
Op de opdrachtregel:
dotnet test -p:TestingPlatformCaptureOutput=false
Of in projectbestand:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
Belangrijk
Alle bovenstaande voorbeelden voegen eigenschappen toe, zoals EnableMSTestRunner
, TestingPlatformDotnetTestSupport
en TestingPlatformCaptureOutput
in het csproj-bestand. Het wordt echter ten zeerste aanbevolen deze eigenschappen in te stellen in Directory.Build.props
. Op die manier hoeft u het niet toe te voegen aan elk testprojectbestand en loopt u geen risico dat u een nieuw project introduceert dat deze eigenschappen niet instelt en uiteindelijk een oplossing krijgt waarbij sommige projecten VSTest zijn, terwijl andere Microsoft.Testing.Platform zijn, wat mogelijk niet correct werkt en niet wordt ondersteund.