MTP-testprojekt skapas som körbara filer som kan köras direkt (eller felsökas). Det finns ingen extra testkonsol eller extra kommando. Appen avslutas med en annan kod än noll i händelse av fel, vilket är typiskt för de flesta körbara filer. Mer information om kända slutkoder finns i MTP-slutkoder.
Att publisera testprojektet med dotnet publish och köra appen direkt är ett annat sätt att köra dina tester. Exekvera till exempel ./Contoso.MyTests.exe. I vissa scenarier är det också möjligt att använda dotnet build för att skapa den körbara filen, men det kan finnas gränsfall att överväga, till exempel Native AOT.
Använd dotnet run
Kommandot dotnet run kan användas för att skapa och köra test project. Det här är det enklaste, men ibland långsammaste, sättet att köra dina tester. Det är praktiskt att använda dotnet run när du redigerar och kör tester lokalt, eftersom det säkerställer att testprojektet återskapas när det behövs.
dotnet run hittar också automatiskt project i den aktuella mappen.
dotnet run --project Contoso.MyTests
Mer information om dotnet runfinns i dotnet run.
Använd dotnet exec
Kommandot dotnet exec eller dotnet används för att köra (eller köra) ett redan byggt test project. Detta är ett alternativ till att köra programmet direkt.
dotnet exec kräver sökvägen till den byggda testprojekt-dll:n.
dotnet exec Contoso.MyTests.dll
eller
dotnet Contoso.MyTests.dll
Anmärkning
Om du anger sökvägen till testprojektets körbara fil (*.exe) leder det till ett felmeddelande:
Error:
An assembly specified in the application dependencies manifest
(Contoso.MyTests.deps.json) has already been found but with a different
file extension:
package: 'Contoso.MyTests', version: '1.0.0'
path: 'Contoso.MyTests.dll'
previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net10.0\Contoso.MyTests.exe'
Mer information om dotnet execfinns i dotnet exec.
Använd dotnet test
Från och med .NET 10 SDK har dotnet test ett dedikerat MTP-läge. Välj MTP via global.jsoneller använd DOTNET_TEST_RUNNER miljövariabeln med .NET 11 Förhandsversion 6 eller senare. Det dedikerade läget stöder projekt, lösningar, inbyggda testmoduler och ytterligare indatatyper i nyare SDK-versioner.
dotnet test --test-modules Contoso.MyTests.dll
För val av löpare och migrering från VSTest-kompatibelt läge, se Testa med dotnet test.
MTP-testerna kan köras (och debuggas) i Visual Studio, integreras med Test Explorer och kan även köras direkt som startprojekt.
Kör appen med Visual Studio
MTP-testprojektet skapas som körbara filer och kan köras direkt. Detta program kör alla tester i den angivna körbara filen, såvida inte ett filter har angetts.
- Navigera till testprojektet du vill köra i Prieskumník riešení, högerklicka på det och välj Ange som startprojekt.
- Välj Debug>Starta utan felsökning (eller använd Ctrl+F5) för att köra det valda testprojektet.
Konsolfönstret visas med körningen och sammanfattningen av ditt test.
Felsöka appen direkt i Visual Studio
MTP-testprojektet kan kopplas bort direkt. För att felsöka alla tester i den givna körbara filen, såvida inte ett filter anges:
- Navigera till testprojektet du vill köra i Prieskumník riešení, högerklicka på det och välj Ange som startprojekt.
- Ange brytpunkt i det test som du vill felsöka.
- Gå till Debug>Start Felsökning (eller tryck på F5) för att felsöka det valda testprojektet.
Alla tester körs tills ditt test med en brytpunkt har nåtts. Gå igenom testet för att felsöka det. När du är klar med felsökningen återupptas körningen av alla återstående tester, såvida du inte stoppar den.
Använd Test Explorer
Om du vill köra ett test går du till Test Explorer, väljer det test (eller de tester) som ska köras. Högerklicka på den och välj Kör. Om du vill felsöka ett test väljer du testet (eller testerna) i Test Explorer, högerklickar och väljer Felsök.
Anmärkning
Automatisk uppdatering av tester utan att bygga projektet är inte tillgänglig.
Med C#-tillägget tillsammans med C# Dev Kit kan du felsöka/köra tester i Visual Studio kod samt lägga till integrering med Visual Studio Code-testutforskaren.
Kör appen med Visual Studio Code
MTP-testprojektet skapas som körbara filer och kan köras direkt. Detta program kör alla tester i den angivna körbara filen, såvida inte ett filter har angetts.
- Navigera till en testfil som du vill köra tester för.
- Använd Ctrl+F5 för att köra det valda testprojektet. Om du har flera projekt ber ett popup-fönster dig att välja den som ska köras.
Konsolfönstret visas med körningen och sammanfattningen av ditt test.
Felsöka appen direkt i Visual Studio Code
MTP-testprojektet skapas som körbara filer och kan köras direkt. Detta program kör alla tester i den angivna körbara filen, såvida inte ett filter har angetts.
- Navigera till en testfil som du vill köra tester för.
- Använd F5 för att felsöka det valda testprojektet. Om du har flera projekt ber ett popup-fönster dig att välja den som ska köras.
Tips/Råd
Det finns flera andra sätt att köra ett dotnet-project med C# DevKit, till exempel att köra från solution explorer eller skapa motsvarande startkonfigurationer. Dessa anges i dokumentationen Visual Studio Code.
När projektet körs visas fliken för utdata med exekveringen och sammanfattningen av din testkörning.
Använd Test Explorer
Om du vill köra ett test går du till Test Explorer, väljer det test (eller de tester) som ska köras. Högerklicka på den och välj Kör. Om du vill felsöka ett test väljer du testet (eller testerna) i Test Explorer, högerklickar och väljer Felsök.
Anmärkning
Automatisk uppdatering av tester utan att bygga projektet är inte tillgänglig.
Om du vill köra flera testprojekt parallellt, anropa dotnet test en gång för lösningen i stället för att lägga till ett pipelinesteg för varje testkörbar fil. När du lägger till ett MTP-testprojekt i lösningen inkluderas det av samma kommando utan en pipelineändring.
Kör en lösning i Azure-pipelines
Använd .NET 10 SDK eller senare och MTP 1.7 eller senare. Alla testprojekt i lösningen måste ha stöd för MTP. Testprojekt som endast använder VSTest stöds inte i det här läget. För tidigare SDK-versioner, se Kör MTP-projekt med VSTest-läge.
I repositoriets rot skapar du en global.json-fil med följande innehåll. Om filen redan finns lägger du till avsnittet test och ser till att dess SDK-inställningar väljer .NET 10 eller senare.
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
För TRX-rapporter måste varje testprojekt referera till Microsoft.Testing.Extensions.TrxReport, antingen direkt eller via en test-SDK-konfiguration eller profil som innehåller det. Mer information finns i Visual Studio testrapporter (TRX).
Lägg till följande azure-pipelines.yml fil i kodförrådet. Exemplet förutsätter att Contoso.sln och global.json finns i repots rot. Ersätt Contoso.sln med lösningens lagringsplatsrelativa sökväg.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: UseDotNet@2
displayName: Install .NET SDK
inputs:
packageType: sdk
version: 10.0.x
- task: DotNetCoreCLI@2
displayName: Run solution tests
inputs:
command: test
projects: Contoso.sln
arguments: --configuration Release --max-parallel-test-modules 4
workingDirectory: $(Build.SourcesDirectory)
publishTestResults: true
DotNetCoreCLI@2 uppgiften anropar dotnet test en gång för lösningen. Kommandot återställer beroenden, skapar lösningen och kör dess MTP-testmoduler parallellt. Som standard dotnet test körs upp till Environment.ProcessorCount moduler samtidigt. Exemplet använder --max-parallel-test-modules 4 för att begränsa samtidigheten till fyra moduler. Justera gränsen så att den matchar agentens processor, minne och andra resurser.
Viktigt!
Välj en lösningsfil i projects, inte ett projektfilsmönster, till exempel **/*.csproj. Uppgiften anropar dotnet test separat för varje matchad fil, en efter en. Med ett enda lösningsanrop kan dotnet test samordna parallell körning mellan sina testprojekt.
Parallellitet på modulnivå är separat från parallell körning av tester i en modul. Om du vill konfigurera parallella tester i en assembly använder du testramverkets inställningar. För MSTest, se ParallelizeAttribute.
Med publishTestResults: true lägger aktiviteten till --report-trx och --results-directory samt publicerar rapporterna på fliken Test för pipelinekörning, även om testerna misslyckas. En avslutskod som inte är noll dotnet test gör också att uppgiften och pipelinen misslyckas.
Anmärkning
MTP-stöd i DotNetCoreCLI@2 kräver aktivitetsversion 2.263.0 eller senare. Behåll global.json i aktivitetens arbetskatalog så att både aktiviteten och .NET SDK väljer MTP.
Kör en lösning med ett skript
För uppgiftsversioner utan MTP-stöd, eller för att styra CLI-kommandot direkt, använder du ett skript och publicerar TRX-rapporterna i ett separat steg. Samma .NET SDK, global.json och TRX-tilläggskrav gäller.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: UseDotNet@2
displayName: Install .NET SDK
inputs:
packageType: sdk
version: 10.0.x
- task: CmdLine@2
displayName: Run solution tests
inputs:
script: >-
dotnet test --solution Contoso.sln
--configuration Release
--max-parallel-test-modules 4
--results-directory "$(Agent.TempDirectory)"
--report-trx
workingDirectory: $(Build.SourcesDirectory)
- task: PublishTestResults@2
displayName: Publish test results
condition: succeededOrFailed()
inputs:
testResultsFormat: VSTest
testResultsFiles: '**/*.trx'
searchFolder: $(Agent.TempDirectory)
failTaskOnFailedTests: true
failTaskOnMissingResultsFile: true
Villkoret succeededOrFailed() publicerar resultat efter en lyckad eller misslyckad testkörning. Pipeline misslyckas fortfarande på grund av skriptets avslutskod som inte är noll. Om du vill undvika rapportöverskrivningar mellan moduler ska du inte tilldela samma TRX-filnamn till varje modul. Information om alternativ för namngivning och isolering finns i Rapportfilnamn.
Kör en enda körbar testfil
För ett enskilt testprojekt bygger eller publicerar du projektet innan du anropar dess körbara fil direkt:
- task: CmdLine@2
displayName: "Run Contoso.MyTests"
inputs:
script: '.\Contoso.MyTests\bin\Debug\net10.0\Contoso.MyTests.exe'