Az MTP tesztprojektek futtatható fájlokként készülnek, amelyek közvetlenül futtathatók (vagy hibakeresési módban futtathatók). Nincs extra tesztfuttató konzol vagy parancs. Ha hiba történik, az alkalmazás nem aero kilépési kóddal lép ki, ami a legtöbb végrehajtható fájlra jellemző. Az ismert kilépési kódokról további információt az MTP kilépési kódjaiban talál.
A teszt project dotnet publish használatával való közzététele és az alkalmazás közvetlen futtatása a tesztek futtatásának másik módja. Például a ./Contoso.MyTests.exe végrehajtása. Bizonyos esetekben a végrehajtható fájl létrehozásához dotnet build is használható, de vannak olyan szélsőséges esetek is, amelyeket érdemes megfontolni, például a natív AOT.
Használja a dotnet run-t
A dotnet run parancsot használva létrehozhatja és futtathatja a tesztprojektet. Ez a legegyszerűbb, bár néha leglassabb módszer a tesztek futtatására. A dotnet run használata gyakorlatias, ha helyileg szerkeszti és futtatja a teszteket, mivel biztosítja, hogy a teszt project szükség esetén újraépüljön.
dotnet run automatikusan megkeresi a project az aktuális mappában.
dotnet run --project Contoso.MyTests
A dotnet run-ról további információért lásd: dotnet run.
Használja a dotnet exec-t
A dotnet exec vagy dotnet parancs egy már létrehozott teszt project végrehajtására (vagy futtatására) szolgál, ez alternatíva az alkalmazás közvetlen futtatására.
dotnet exec a beépített tesztelési project dll elérési útját igényli.
dotnet exec Contoso.MyTests.dll
vagy
dotnet Contoso.MyTests.dll
Megjegyzés:
A végrehajtható project teszt elérési útjának (*.exe) megadása hibát eredményez:
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'
További információ a dotnet exec-ról: lásd dotnet exec.
Használja a dotnet test-t
A .NET 10 SDK-tól dotnet test kezdve dedikált MTP-móddal rendelkezik. Válassza az MTP-t a global.json használatával, vagy használja a DOTNET_TEST_RUNNER környezeti változót a .NET 11 Preview 6 vagy újabb verziójával. A dedikált mód projekteket, megoldásokat, beépített tesztmodulokat és további bemeneti típusokat támogat az újabb SDK-verziókban.
dotnet test --test-modules Contoso.MyTests.dll
A futtatók kiválasztásáról és a VSTest-kompatibilis módból való migrálásról itt olvashat: Tesztelés a következővel: dotnet test.
Az MTP-tesztek futtathatók a Visual Studioban, integrálhatók a Test Explorerrel, és közvetlenül indítási projektként is elindíthatók.
Indítsa az alkalmazást a Visual Studio-val
Az MTP-tesztprojekt végrehajthatóként készült, és közvetlenül futtatható. Ez futtatja az összes tesztet az adott végrehajtható fájlban, hacsak nincs megadva szűrő.
- Navigáljon a Megoldáskezelőben a futtatni kívánt tesztprojektet, kattintson rá jobb gombbal, és válassza az Indítási projektként állítás lehetőséget.
- Válassza a DebugStart hibakeresés nélkül (vagy használja a CtrlF5 a kiválasztott teszt projekt futtatásához).
A konzolablak megjelenik a tesztfuttatás végrehajtásával és összegzésével.
Az alkalmazás hibakeresése közvetlenül a Visual Studio
Az MTP-tesztprojekt közvetlenül is hibakeresést végezhet. Az adott végrehajtható fájlban lévő összes teszt hibakeresése, kivéve, ha szűrő van megadva:
- Navigáljon a Megoldáskezelőben a futtatni kívánt tesztprojektet, kattintson rá jobb gombbal, és válassza az Indítási projektként állítás lehetőséget.
- Állítson be töréspontot a debaggolni kívánt tesztbe.
- Lépjen a Debug>Hibakeresés indítása (vagy nyomja le a F5-öt) a kiválasztott tesztprojekt hibakereséséhez.
Az összes teszt végrehajtásra kerül, amíg el nem éri a töréspontot tartalmazó tesztjét. A teszt hibakereséséhez lépjen végig részletesen a folyamaton. Ha végzett a hibakereséssel, az alkalmazás folytatja az összes fennmaradó teszt futtatását, hacsak nem állítja le.
A Test Explorer használata
Teszt futtatásához lépjen Tesztkezelő, válassza ki a futtatni kívánt tesztet (vagy teszteket). Kattintson rá a jobb gombbal, és válassza a Futtatás lehetőséget. A teszt hibakereséséhez hasonlóan válassza ki a tesztet (vagy a teszteket) Tesztkezelő, válassza a jobb gombbal, majd válassza Hibakeresésilehetőséget.
Megjegyzés:
A tesztek automatikus frissítése a project létrehozása nélkül nem érhető el.
A C# bővítmény és a C# Dev Kit lehetővé teszi a tesztek hibakeresését/futtatását Visual Studio kódban, valamint integrációt biztosít Visual Studio Code Test Explorerével.
Az alkalmazás futtatása Visual Studio Kóddal
Az MTP-tesztprojekt végrehajthatóként készült, és közvetlenül futtatható. Ez futtatja az összes tesztet az adott végrehajtható fájlban, hacsak nincs megadva szűrő.
- Keresse meg azt a tesztfájlt, amelyhez teszteket szeretne futtatni.
- A Ctrl+F5 használatával futtassa a kiválasztott teszt project. Ha több projektje van, a felugró ablak arra kéri, hogy válassza ki a futtatni kívánt projektet.
A konzolablak megjelenik a tesztfuttatás végrehajtásával és összegzésével.
Az alkalmazás hibakeresése közvetlenül Visual Studio Code-ban
Az MTP-tesztprojekt végrehajthatóként készült, és közvetlenül futtatható. Ez futtatja az összes tesztet az adott végrehajtható fájlban, hacsak nincs megadva szűrő.
- Keresse meg azt a tesztfájlt, amelyhez teszteket szeretne futtatni.
- A kiválasztott teszt project hibakereséséhez használja a F5. Ha több projektje van, a felugró ablak arra kéri, hogy válassza ki a futtatni kívánt projektet.
Jótanács
Dotnet projektet a C# DevKit használatával többféleképpen is futtathatunk, például a Solution Explorerből indítva vagy megfelelő indítási konfigurációkat létrehozva. A Visual Studio Code dokumentációjában vannak megadva.
A project futtatásakor a kimeneti lap megjelenik a tesztfuttatás végrehajtásával és összegzésével.
A Test Explorer használata
Teszt futtatásához lépjen Tesztkezelő, válassza ki a futtatni kívánt tesztet (vagy teszteket). Kattintson rá a jobb gombbal, és válassza a Futtatás lehetőséget. A teszt hibakereséséhez hasonlóan válassza ki a tesztet (vagy a teszteket) Tesztkezelő, válassza a jobb gombbal, majd válassza Hibakeresésilehetőséget.
Megjegyzés:
A tesztek automatikus frissítése a project létrehozása nélkül nem érhető el.
Ha több tesztprojektet szeretne párhuzamosan futtatni, hívja meg dotnet test egyszer a megoldásra ahelyett, hogy minden végrehajtható teszthez hozzáadna egy folyamatlépést. Amikor MTP-tesztprojektet ad hozzá a megoldáshoz, ugyanez a parancs folyamatmódosítás nélkül is belefoglalja.
Megoldás futtatása az Azure Pipelinesben
Használja a .NET 10 SDK-t vagy újabbat, valamint az MTP 1.7-es vagy újabb verzióját. A megoldásban lévő összes tesztprojektnek támogatnia kell az MTP-t; ebben a módban a csak VSTest-alapú tesztprojektek nem támogatottak. Korábbi SDK-verziók esetén lásd: MTP-projektek futtatása VSTest módban.
Az adattár gyökérkönyvtárában hozzon létre egy global.json fájlt az alábbi tartalommal. Ha a fájl már létezik, adja hozzá a test szakaszt, és győződjön meg arról, hogy az SDK-beállításokban a .NET 10-es vagy újabb verzió legyen kiválasztva.
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
TRX-jelentések esetén minden tesztprojektnek vagy közvetlenül a(z) Microsoft.Testing.Extensions.TrxReport elemre kell hivatkoznia, vagy egy azt tartalmazó teszt-SDK-konfiguráción vagy -profilon keresztül. További részletekért lásd Visual Studio tesztjelentéseket (TRX).
Adja hozzá a következő azure-pipelines.yml fájlt a tárházához. A példa azt feltételezi, hogy a(z) Contoso.sln és global.json az adattár gyökerében vannak. Cserélje le Contoso.sln helyére a megoldás adattár-relatív elérési útját.
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
A DotNetCoreCLI@2 feladat egyszer meghívja a dotnet test elemet a megoldáshoz. A parancs visszaállítja a függőségeket, felépíti a megoldást, és párhuzamosan futtatja az MTP-tesztmoduljait. Alapértelmezés szerint egyszerre legfeljebb Environment.ProcessorCount modul fut a(z) dotnet test alatt. A példa a(z) --max-parallel-test-modules 4 használatával négy modulra korlátozza az egyidejűséget. Állítsa be a korlátot úgy, hogy megfeleljen az ügynökprogram processzorának, memóriájának és egyéb erőforrásainak.
Fontos
Válasszon ki egy megoldásfájlt a(z) projects mezőben, ne projektfájl-mintát, például **/*.csproj. A feladat minden egyeztetett fájlhoz külön-külön hív meg dotnet test , egymás után. Egyetlen megoldáshívással dotnet test koordinálja a párhuzamos végrehajtást a tesztprojektjeiben.
A modulszintű párhuzamosság nem azonos a modulon belüli tesztek párhuzamos végrehajtásával. Az assemblyn belüli párhuzamos tesztek konfigurálásához használja a tesztelési keretrendszer beállításait. A MSTest esetében lásd a ParallelizeAttribute témakört.
Ezzel publishTestResults: true a művelet hozzáadja a --report-trx és a --results-directory elemeket, és közzéteszi a jelentéseket a folyamatfuttatás Tesztek lapján, még akkor is, ha a tesztek sikertelenek. A nem nulla dotnet test kilépési kód a feladat és a folyamatcsatorna meghiúsulását is okozza.
Megjegyzés:
Az MTP-támogatáshoz DotNetCoreCLI@2 a 2.263.0-s vagy újabb feladatverzió szükséges. Tartsa a(z) global.json elemet a feladat munkakönyvtárában, hogy a feladat és a .NET SDK is az MTP-t válassza.
Megoldás futtatása szkripttel
MTP-támogatással nem rendelkező feladatverziók esetén vagy a CLI-parancs közvetlen vezérléséhez használjon szkriptet, és tegye közzé a TRX-jelentéseket egy külön lépésben. Ugyanezek a .NET SDK, global.json és a TRX-bővítményre vonatkozó követelmények érvényesek.
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
A succeededOrFailed() feltétel egy sikeres vagy sikertelen tesztfuttatás után teszi közzé az eredményeket. A szkript nem nulla kilépési kódja továbbra is megbuktatja a folyamatot. Ha el szeretné kerülni, hogy a jelentések felülíródjanak a modulok között, ne rendelje hozzá ugyanazt a TRX-fájlnevet minden modulhoz. Az elnevezési és elkülönítési beállításokkal kapcsolatban lásd a jelentésfájlneveket.
Egyetlen végrehajtható teszt futtatása
Egyetlen tesztprojekt esetében hozza létre vagy tegye közzé a projektet, mielőtt közvetlenül meghívja a végrehajtható fájlját:
- task: CmdLine@2
displayName: "Run Contoso.MyTests"
inputs:
script: '.\Contoso.MyTests\bin\Debug\net10.0\Contoso.MyTests.exe'