.NET Core-alkalmazások buildelése, tesztelése és üzembe helyezése
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure Pipeline használatával automatikusan létrehozhatja, tesztelheti és üzembe helyezheti .NET Core-projektjeit. Ez a cikk a következő feladatok elvégzését mutatja be:
- Saját üzemeltetésű ügynökökkel állítsa be a buildkörnyezetet.
- Állítsa vissza a függőségeket, hozza létre a projektet, és tesztelje a .NET Core-feladatot (DotNetCoreCLI@2) vagy egy szkriptet.
- Tesztelje a kódot, és a kódlefedettségi feladat használatával tegye közzé a kódlefedettségi eredményeket.
- Csomagolja és kézbesítse a build kimenetét a következőre:
- a folyamathoz.
- NuGet-hírcsatorna.
- egy
.zip
webalkalmazás Azure-ban való üzembe helyezéséhez szükséges fájl.
- Állítsa be a buildkörnyezetet a Microsoft által üzemeltetett vagy saját üzemeltetésű ügynökökkel.
- Állítsa vissza a függőségeket, hozza létre a projektet, és tesztelje a .NET Core-feladatot (DotNetCoreCLI@2) vagy egy szkriptet.
- Tesztelje a kódot, és a kódlefedettségi feladat használatával tegye közzé a kódlefedettségi eredményeket.
- Csomagolja és kézbesítse a build kimenetét a következőre:
- a folyamathoz.
- NuGet-hírcsatorna.
- egy
.zip
webalkalmazás Azure-ban való üzembe helyezéséhez szükséges fájl.
Feljegyzés
A .NET-keretrendszer-projektekhez a ASP.NET-alkalmazások .NET-keretrendszer való buildeléséhez nyújt segítséget.
Előfeltételek
- Egy GitHub-fiók, ahol adattárat hozhat létre. Hozzon létre egyet ingyen.
- Egy Azure DevOps-szervezet és -projekt. Hozzon létre egyet ingyen.
- Folyamatok futtatásának lehetősége a Microsoft által üzemeltetett ügynökökön. Vásárolhat párhuzamos feladatot , vagy ingyenes szintet kérhet.
- Egy GitHub-fiók, ahol adattárat hozhat létre. Hozzon létre egyet ingyen.
- Egy Azure DevOps-gyűjtemény.
- Folyamatokat futtathat egy saját üzemeltetésű ügynökön, amelyen telepítve van a Docker, és fut az ügynök gazdagépén.
Az első folyamat létrehozása
Most ismerkedik az Azure Pipelines szolgáltatásokkal? Ha igen, akkor javasoljuk, hogy először próbálja ki a következő szakaszt.
.NET-projekt létrehozása
Ha nem rendelkezik .NET-projekttel, hozzon létre egy újat a helyi rendszeren. Először telepítse a legújabb .NET 8.0 SDK-t .
Nyisson meg egy terminálablakot.
Hozzon létre egy projektkönyvtárat, és navigáljon hozzá.
Hozzon létre egy új .NET 8-webalkalmazást.
dotnet new webapp -f net8.0
Ugyanabból a terminál munkamenetből futtassa az alkalmazást helyileg a
dotnet run
projektkönyvtár parancsával.dotnet run
Az alkalmazás elindítása után a Ctrl-C billentyűkombinációt lenyomva állítsa le.
Git-adattár létrehozása és csatlakoztatása a GitHubhoz
A projektkönyvtárból hozzon létre egy helyi Git-adattárat, és véglegesítse az alkalmazáskódot a főágban.
DevOps-projekt létrehozása
Jelentkezzen be az Azure Pipelinesba. A bejelentkezés után a böngésző megtekinti https://dev.azure.com/my-organization-name
és megjeleníti az Azure DevOps-irányítópultot.
- Egy böngészőben nyissa meg a dev.azure.com , és jelentkezzen be.
- Válassza ki a szervezetet.
- Hozzon létre egy új projektet az Új projekt vagy a Projekt létrehozása lehetőség kiválasztásával, ha az első projektet hozza létre a szervezetben.
- Adjon meg egy projektnevet.
- Válassza ki a projekt láthatóságát .
- Válassza a Létrehozás lehetőséget.
- Egy böngészőben nyissa meg az Azure DevOps Servert.
- Válassza ki a gyűjteményt.
- Új projekt létrehozásához válassza az Új projekt vagy a Projekt létrehozása lehetőséget, ha az első projektet hozza létre a gyűjteményben.
- Adjon meg egy projektnevet.
- Válassza ki a projekt láthatóságát .
- Válassza a Létrehozás lehetőséget.
- Egy böngészőablakban jelentkezzen be az Azure DevOps Serverre, és válassza ki a gyűjteményt.
- Válassza az Új projekt lehetőséget.
- Adja meg a projekt nevét.
- Ha szeretné, adjon meg egy leírást.
- Válassza a Létrehozás lehetőséget.
A buildkörnyezet beállítása
A buildek saját üzemeltetésű ügynökökön futnak. Győződjön meg arról, hogy az ügynökökre telepítve van a .NET Core SDK és a futtatókörnyezet szükséges verziója. A .NET Core-projekteket a .NET Core SDK és a futtatókörnyezet használatával hozhatja létre Windows, Linux, macOS és Docker rendszeren.
A .NET SDK egy adott verzióját úgy telepítheti, hogy hozzáadja a UseDotNet@2 feladatot a folyamat YAML-fájljához, vagy hozzáadja a feladatot a folyamathoz a klasszikus szerkesztő használatával.
Példa YAML-kódrészletre:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
A buildek a Microsoft által üzemeltetett ügynökökön futnak. A .NET Core-projekteket a .NET Core SDK és a futtatókörnyezet használatával hozhatja létre Windows, Linux és macOS rendszeren.
Másik lehetőségként használhat saját üzemeltetésű ügynököt is. Saját üzemeltetésű ügynökkel használhat előzetes verziójú vagy privát SDK-kat, amelyeket az Azure DevOps Services hivatalosan nem támogat, és növekményes buildeket futtathat.
A folyamat létrehozása
A folyamat létrehozásához használhatja a YAML-folyamatszerkesztőt vagy a klasszikus szerkesztőt. A klasszikus szerkesztő használatához válassza a Klasszikus szerkesztő használata lehetőséget.
Új folyamat létrehozása és a forrás kiválasztása
Jelentkezzen be az Azure DevOps-szervezetbe, és nyissa meg a projektet.
Lépjen a Folyamatok elemre, majd válassza az Új folyamat vagy a Folyamat létrehozása lehetőséget az első folyamat létrehozásakor.
Végezze el a varázsló lépéseit úgy, hogy először a GitHubot választja a forráskód helyeként.
Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.
Amikor megjelenik az adattárak listája, válassza ki az adattárat.
Előfordulhat, hogy a Rendszer átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez. Ha igen, válassza a Jóváhagyás > telepítés lehetőséget.
A folyamat konfigurálása
Amikor megjelenik a Konfigurálás lap, válassza a Továbbiak megjelenítése lehetőséget, és válassza ki a ASP.NET Core-folyamatsablont a listából.
Vizsgálja meg az új folyamatot, hogy lássa, mit tesz a YAML.
A YAML-fájlt testreszabhatja a követelményeknek megfelelően. Megadhatja például az ügynökkészletet, vagy hozzáadhat egy feladatot a különböző .NET SDK telepítéséhez.
A folyamat mentése és futtatása
Ha elkészült, válassza a Mentés és futtatás lehetőséget.
Igény szerint szerkesztheti a véglegesítési üzenetet.
Véglegesítse az új azure-pipelines.yml fájlt az adattárban a Mentés és futtatás gombra kattintva.
A folyamat működés közbeni megtekintéséhez válassza ki a feladatot a Feladatok szakaszban.
A folyamat létrehozása és futtatása
A folyamatot a YAML-folyamatszerkesztővel vagy a klasszikus szerkesztővel hozhatja létre.
- Nyissa meg a projektet, és válassza a Folyamatok lehetőséget.
- Válassza a Folyamat létrehozása vagy Az új folyamat létrehozása lehetőséget, ha a projekt első folyamatát hozza létre.
Válassza ki a forrást
Válassza ki a forrásadattárat. Ebben a példában használja a GitHub Enterprise Servert.
- Adja meg a GitHub-fiók URL-címét. Például:
https://github.com/<username>
. - Adja meg személyes hozzáférési jogkivonatát a GitHub-fiókjához.
- Adjon meg egy szolgáltatáskapcsolatnevet. Például:
my-github
. - Válassza a Létrehozás lehetőséget.
- Adja meg a GitHub-fiók URL-címét. Például:
Válassza ki a GitHub-adattárat.
A folyamat konfigurálása
A Konfigurálás lapon válassza a Továbbiak megjelenítése lehetőséget, és válassza ki a ASP.NET Core-folyamatsablont a listából.
Vizsgálja meg az új folyamatot, hogy lássa, mit tesz a YAML.
A YAML-fájlt testreszabhatja a követelményeknek megfelelően. Hozzáadhat például feladatokat egy .NET SDK telepítéséhez vagy a projekt teszteléséhez és közzétételéhez.
A folyamat mentése és futtatása
Válassza a Mentés lehetőséget.
A folyamat YAML-fájljának az adattárba való véglegesítéséhez szükség szerint szerkessze a véglegesítési üzenetet, és válassza a Mentés lehetőséget.
Válassza a Futtatás lehetőséget a folyamat futtatásához.
Ha látni szeretné a buildnaplókat a folyamat futtatásakor, válassza ki az oldal tetején található buildszámot.
Válassza a Mentés és futtatás lehetőséget.
Ha az új azure-pipelines.yml fájlt az adattárba szeretné véglegesíteni, szükség szerint szerkessze a véglegesítési üzenetet, és válassza a Mentés és futtatás lehetőséget.
A folyamat működés közbeni megtekintéséhez válassza ki a feladatot a Feladatok szakaszban.
Most már rendelkezik egy olyan munkafolyamatpal, amely készen áll a testreszabásra! További információ a folyamat testreszabásának néhány gyakori módjáról.
Környezet létrehozása
Az Azure Pipelines saját üzemeltetésű ügynököket használ a .NET Core-projektek létrehozásához. Győződjön meg arról, hogy az ügynökökre telepítve van a .NET Core SDK és a futtatókörnyezet szükséges verziója. A .NET Core-projekteket a .NET Core SDK és a futtatókörnyezet használatával hozhatja létre Windows, Linux, macOS és Docker rendszeren.
Például egy készlet és ügynök képességeinek kiválasztása a folyamat YAML-fájljában:
Kiválaszthatja a buildelési feladat ügynökkészletét és ügynökét. Az ügynökök a képességeik alapján vannak megadva.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
A .NET SDK egy adott verzióját úgy telepítheti, hogy hozzáadja a UseDotNet@2 feladatot a folyamathoz. Ne feledje, hogy a fizikai rendszereken futó ügynökök esetében az SDK-k és eszközök folyamaton keresztüli telepítése megváltoztatja az ügynök gazdagépének buildkörnyezetét.
Újabb SDK telepítéséhez állítsa be performMultiLevelLookup
true
az alábbi kódrészletet:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Az Azure Pipelines használatával anélkül hozhat létre .NET Core-projekteket Windowson, Linuxon vagy macOS rendszeren, hogy infrastruktúrát kellene beállítania.
Az Ubuntu például itt van beállítva a folyamat YAML-fájljában.
pool:
vmImage: 'ubuntu-latest'
A képek teljes listáját és a további konfigurációs példákat a Microsoft által üzemeltetett ügynökökben találja.
Az Azure Pipelines Microsoft által üzemeltetett ügynökei a támogatott .NET Core SDK-k számos előre telepített verzióját tartalmazzák. A Microsoft által üzemeltetett ügynökök nem tartalmazzák a .NET Core SDK néhány régebbi verzióját. Ezek általában nem tartalmaznak előzetes verziókat. Ha az SDK ezen verzióira van szüksége a Microsoft által üzemeltetett ügynökökön, telepítse őket a UseDotNet@2 feladattal.
Az 5.0.x SDK telepítéséhez például adja hozzá a következő kódrészletet:
steps:
- task: UseDotNet@2
inputs:
version: '5.x'
A Windows-ügynökök már tartalmaznak .NET Core-futtatókörnyezetet. Újabb SDK telepítéséhez állítsa be performMultiLevelLookup
true
az alábbi kódrészletet:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Tipp.
Az eszköztelepítő futtatásának költségeinek megtakarításához beállíthat linuxos, macOS vagy Windows rendszerű saját üzemeltetésű ügynököt. A saját üzemeltetésű ügynökökkel további időt takaríthat meg, ha nagy tárházzal rendelkezik, vagy növekményes buildeket futtat. A saját üzemeltetésű ügynökök is segíthetnek az Előzetes verzióban vagy a privát SDK-k használatában, amelyeket az Azure DevOps hivatalosan nem támogat, vagy amelyek csak a vállalati vagy helyszíni környezetekben érhetők el.
Függőségek helyreállítása
A NuGet egy népszerű módja annak, hogy a nem buildelt kódtól függjön. A projektfájlban megadott NuGet-csomagokat és projektspecifikus eszközöket úgy töltheti le, hogy a dotnet restore
parancsot a .NET Core-feladaton keresztül vagy közvetlenül a folyamat egy szkriptjében futtatja. További információ: .NET Core-feladat (DotNetCoreCLI@2).
NuGet-csomagokat az Azure Artifactsből, NuGet.org vagy más külső vagy belső NuGet-adattárból tölthet le. A .NET Core-feladat különösen hasznos a hitelesített NuGet-hírcsatornákból származó csomagok visszaállításához. Ha a hírcsatorna ugyanabban a projektben van, mint a folyamat, nem kell hitelesítenie magát.
Ez a folyamat egy Azure Artifact-hírcsatornát dotnet restore
használ a DotNetCoreCLI@2 feladathoz.
trigger:
- main
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
variables:
buildConfiguration: 'Release'
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
feedsToUse: 'select'
vstsFeed: 'my-vsts-feed' # A series of numbers and letters
- task: DotNetCoreCLI@2
inputs:
command: 'build'
arguments: '--configuration $(buildConfiguration)'
displayName: 'dotnet build $(buildConfiguration)'
A dotnet restore
parancs a NuGet.exe
.NET Core SDK-val együtt csomagolt csomagot használja, és csak a .NET Core-projektfájlokban .csproj
megadott csomagokat tudja visszaállítani.
Ha microsoftos .NET-keretrendszer projektje is van a megoldásban, vagy a függőségek megadására használjapackage.json
, a NuGet-feladat használatával állítsa vissza ezeket a függőségeket.
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
A .NET Core SDK 2.0-s és újabb verzióiban a rendszer automatikusan visszaállítja a csomagokat olyan parancsok futtatásakor, mint a dotnet build
. Hitelesített hírcsatorna használata esetén azonban továbbra is a .NET Core-feladatot kell használnia a csomagok visszaállításához.
A buildek sikertelenek lehetnek a kapcsolati problémák miatt, amikor NuGet.org csomagokat állít vissza. A csomagok gyorsítótárazásához használhatja az Azure Artifactst felsőbb rétegbeli forrásokkal. A folyamat hitelesítő adatait a rendszer automatikusan használja az Azure Artifactshez való csatlakozáskor. Ezek a hitelesítő adatok általában a Project Collection Build Service-fiókból származnak. A NuGet-csomagok gyorsítótárazásához az Azure Artifacts használatával kapcsolatos további információkért lásd : Csatlakozás az Azure Artifact-hírcsatornákhoz.
NuGet-adattár megadásához helyezze az URL-címet egy NuGet.config
fájlba az adattárban. Ha a hírcsatorna hitelesítve van, kezelje a hitelesítő adatait egy NuGet-szolgáltatáskapcsolat létrehozásával a Szolgáltatások lapon, a Projektbeállítások területen.
A Microsoft által üzemeltetett ügynökök használatakor minden egyes build futtatásakor új gépet kap, amely minden futtatáskor visszaállítja a csomagokat. A helyreállítás jelentős időt vehet igénybe. A probléma elhárításához használhatja az Azure Artifactst vagy egy saját üzemeltetésű ügynököt a csomaggyorsítótár használatával.
További információ a NuGet-szolgáltatáskapcsolatokról: közzététel a NuGet-hírcsatornákban.
Csomagok visszaállítása külső hírcsatornából
Végezze el az alábbi lépéseket a csomagok külső hírcsatornából való visszaállításához.
A visszaállítási parancsot a YAML-folyamatszerkesztővel is hozzáadhatja a folyamathoz úgy, hogy közvetlenül beszúrja a következő kódrészletet a azure-pipelines.yml
fájlba, vagy a feladat-asszisztens használatával adja hozzá a .NET Core-feladatot .
# do this before your build tasks
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: config
nugetConfigPath: NuGet.config # Relative to root of the repository
externalFeedCredentials: <Name of the NuGet service connection>
Cserélje le a <helyőrzőt> a szolgáltatáskapcsolat nevére.
A feladat-asszisztens használata:
Ha buildfeladatot szeretne hozzáadni a feladatkezelővel, hajtsa végre a következő lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a .NET Core-t a feladatkatalógusból.
Válassza ki a visszaállítási parancsot a Parancs legördülő listából.
A Projekt(ek) elérési útja mezőben adja meg a
.csproj
fájlok elérési útját.Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
Feljegyzés
Győződjön meg arról, hogy az egyéni hírcsatorna meg van adva a NuGet.config
fájlban, és hogy a hitelesítő adatok meg vannak adva a NuGet szolgáltatáskapcsolatban.
A projekt felépítése
A parancs futtatásával hozza létre a .NET Core-projekteket dotnet build
. A parancsot parancssori szkriptként vagy .NET Core-feladatként is hozzáadhatja a folyamathoz.
.NET Core-build a .NET Core-feladattal
YAML-példa a DotNetCoreCLI@2 feladat használatával történő buildeléshez:
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)' # Update this to match your needs
A YAML-folyamatszerkesztővel buildelési feladatokat adhat hozzá a fájl közvetlen szerkesztésével vagy a .NET Core-feladat hozzáadásával a feladatsegéd használatával.
Ha buildfeladatot szeretne hozzáadni a feladatkezelővel, hajtsa végre a következő lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a .NET Core-t a feladatkatalógusból.
Válassza ki a build parancsot a Parancs legördülő listából.
A Projekt(ek) elérési útja mezőben adja meg a
.csproj
fájlok elérési útját.Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
.NET Core-build parancssori szkripttel
YAML-példa szkriptként való buildeléshez dotnet build
:
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
A YAML-folyamatszerkesztővel közvetlenül szerkesztheti a fájlt, vagy hozzáadhatja a parancssori feladatot.
A parancssori feladat hozzáadásához kövesse az alábbi lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a parancssort a feladatkatalógusból.
Tetszés szerint adjon hozzá egy megjelenítendő nevet.
Adja meg a
dotnet build
parancsot paraméterekkel. Például:dotnet build --configuration $(buildConfiguration)
.Adja meg a
.csproj
fájl elérési útját munkakönyvtárként.Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
.NET SDK-parancsok hozzáadása a folyamathoz
A .NET SDK-parancsokat parancsfájlként vagy .NET Core-feladatként is hozzáadhatja a projekthez. A .NET Core-tevékenység (DotNetCoreCLI@2) segítségével egyszerűen adhat hozzá dotnet CLI-parancsokat a folyamathoz. .NET Core-feladatokat a YAML-fájl szerkesztésével vagy a klasszikus szerkesztővel vehet fel.
.NET CLI-parancs hozzáadása a .NET Core-feladattal
Ha .NET Core CLI-parancsot szeretne hozzáadni a YAML-folyamatszerkesztővel, hajtsa végre a következő lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a .NET Core-t a feladatkatalógusból.
Válassza ki a futtatni kívánt parancsot.
Konfigurálja a szükséges beállításokat.
Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
.NET Core CLI-parancs hozzáadása szkripttel
A fájlban azure-pipelines.yml
.NET Core CLI-parancsokat script
is hozzáadhat.
Példa:
steps:
# ...
- script: dotnet test <test-project>
Eszköz telepítése
Ha windowsos buildben szeretne telepíteni egy .NET Core-alapú globális eszközt, például a dotnetsay-t , hajtsa végre a következő lépéseket:
- Adja hozzá a .NET Core-feladatot , és állítsa be a következő tulajdonságokat:
- Parancs: egyéni.
- A projektek elérési útja: hagyja üresen.
- Egyéni parancs: eszköz.
- Argumentumok:
install -g dotnetsay
.
- Parancs: egyéni.
- Az eszköz futtatásához adjon hozzá egy parancssort, és állítsa be a következő tulajdonságokat:
- Szkript:
dotnetsay
.
- Szkript:
A tesztek futtatása
Ha tesztprojektek vannak az adattárban, a .NET Core-feladattal egységteszteket futtathat olyan tesztelési keretrendszerek használatával, mint az MSTest, az xUnit és az NUnit. A tesztprojektnek a Microsoft.NET.Test.SDK 15.8.0-s vagy újabb verziójára kell hivatkoznia. A teszteredmények automatikusan közzé lesznek téve a szolgáltatásban. Ezek az eredmények a build összegzésében érhetők el, és a sikertelen tesztek és a tesztelés időzítésének elemzéséhez használhatók.
A folyamathoz a DotNetCoreCLI@2 feladattal adhat hozzá tesztfeladatot, vagy hozzáadhatja a következő kódrészletet a azure-pipelines.yml
fájlhoz:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
A .NET Core feladatszerkesztő használatakor állítsa be a Command to test (Tesztelés) parancsot, és a Projektek elérési útja parancsnak a megoldás tesztprojektjéhez kell hivatkoznia.
Másik lehetőségként futtathatja a dotnet test
parancsot egy adott naplózóval, majd használhatja a Teszteredmények közzététele feladatot:
steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Kódlefedettség gyűjtése
Amikor a Windows platformra épít, a kódlefedettségi metrikákat a beépített lefedettségi adatgyűjtővel gyűjtheti össze. A tesztprojektnek a Microsoft.NET.Test.SDK 15.8.0-s vagy újabb verziójára kell hivatkoznia.
Amikor a .NET Core-feladatot használja a tesztek futtatására, a rendszer automatikusan közzéteszi a lefedettségi adatokat a kiszolgálón. A .coverage
fájl a Visual Studióban való megtekintéshez letölthető a build összegzéséből.
Adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
A .NET Core-feladat hozzáadása a feladatszerkesztőn keresztül:
Adja hozzá a .NET Core-feladatot a buildelési feladathoz, és állítsa be a következő tulajdonságokat:
- Parancs: teszt.
- A projektek elérési útja: A megoldásban szereplő tesztprojektekre kell hivatkoznia.
- Argumentumok:
--configuration $(BuildConfiguration) --collect "Code coverage"
.
Győződjön meg arról, hogy a Teszteredmények közzététele lehetőség továbbra is be van jelölve.
Ha a dotnet test
parancs futtatását választja, adja meg a teszteredmény-naplózót és a lefedettségi beállításokat. Ezután használja a Teszteredmények közzététele feladatot:
steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx --collect "Code coverage"
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Kódlefedettségi metrikák gyűjtése a Coverlet használatával
Ha Linuxra vagy macOS-re készül, a Coverlet vagy egy hasonló eszköz használatával kódlefedettségi metrikákat gyűjthet.
A kódlefedettségi eredményeket közzéteheti a kiszolgálón a Kódlefedettségi eredmények közzététele (PublishCodeCoverageResults@1) feladattal. A lefedettségi eszközt úgy kell konfigurálni, hogy cobertura vagy JaCoCo lefedettségi formátumban hozzon létre eredményeket.
Tesztek futtatásához és kódlefedettség közzétételéhez a Coverlettel végezze el a következő feladatokat:
Adjon hozzá egy hivatkozást a
coverlet.collector
NuGet-csomaghoz.Adja hozzá a következő kódrészletet a
azure-pipelines.yml
fájlhoz:- task: UseDotNet@2 inputs: version: '8.x' includePreviewVersions: true # Required for preview versions - task: DotNetCoreCLI@2 displayName: 'dotnet build' inputs: command: 'build' configuration: $(buildConfiguration) - task: DotNetCoreCLI@2 displayName: 'dotnet test' inputs: command: 'test' arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura' publishTestResults: true projects: 'MyTestLibrary' # update with your test project directory - task: PublishCodeCoverageResults@1 displayName: 'Publish code coverage report' inputs: codeCoverageTool: 'Cobertura' summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
A kód csomagolása és kézbesítése
A buildösszetevőket a következőkkel teheti közzé:
- Közzététel az Azure Pipelinesban.
- Csomagok közzététele az Azure Artifactsben.
- NuGet-csomag létrehozása és közzététele a NuGet-hírcsatornában.
- .zip archívum létrehozása a webalkalmazás üzembe helyezéséhez.
Összetevők közzététele az Azure Pipelinesban
A .NET-build kimenetének a folyamaton való közzétételéhez hajtsa végre a következő feladatokat:
- Futtassa
dotnet publish --output $(Build.ArtifactStagingDirectory)
a .NET parancssori felületét, vagy adja hozzá a DotNetCoreCLI@2 feladatot a közzétételi paranccsal. - Tegye közzé az összetevőt a Folyamatösszetevő közzététele feladattal.
Adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'myWebsite'
Feljegyzés
A DotNetCoreCLI@2 tevékenység publishWebProjects
alapértelmezés szerint igaz értékre van állítva. Ez a feladat alapértelmezés szerint minden webes projektet közzétesz az adattárban. További segítséget és információt a GitHub nyílt forráskód feladatában talál.
Ha a közzététel előtt további fájlokat szeretne másolni a buildkönyvtárba, használja a Fájlok másolása (CopyFile@2) feladatot.
A .NET-build kimenetének a folyamaton való közzétételéhez hajtsa végre a következő feladatokat:
- Futtassa
dotnet publish --output $(Build.ArtifactStagingDirectory)
a parancssori felületet, vagy adja hozzá a DotNetCoreCLI@2 feladatot a közzétételi paranccsal. - Tegye közzé az összetevőt a buildösszetevő (PublishBuildArtifacts@1) közzétételével.
Adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz a buildösszetevők .zip fájlként való közzétételéhez:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
További információ: Buildösszetevők közzététele és letöltése.
Közzététel NuGet-hírcsatornában
NuGet-csomag létrehozásához és a NuGet-hírcsatornában való közzétételéhez adja hozzá a következő kódrészletet:
steps:
# ...
# do this near the end of your pipeline in most cases
- script: dotnet pack /p:PackageVersion=$(version) # define version variable elsewhere in your pipeline
- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: '<Name of the NuGet service connection>'
- task: NuGetCommand@2
inputs:
command: push
nuGetFeedType: external
publishFeedCredentials: '<Name of the NuGet service connection>'
versioningScheme: byEnvVar
versionEnvVar: version
Feljegyzés
A NuGetAuthenticate@1 feladat nem támogatja a NuGet API-kulcsok hitelesítését. Ha NuGet API-kulcsot használ, használja a NuGetCommand@2 feladatot az command
--api-key argumentummal megadott bemeneti beállítással push
. Például: dotnet nuget push --api-key $(NuGetApiKey)
.
A NuGet-csomagok verziószámozásával és közzétételével kapcsolatos további információkért tekintse meg a NuGet-hírcsatornákban való közzétételt.
NuGet-csomag közzététele az Azure Artifactsben
NuGet-csomagjait közzéteheti az Azure Artifacts-csatornán a NuGetCommand@2 használatával az Azure Artifact-hírcsatornába való leküldéshez. Lásd például a NuGet-csomagok közzétételét az Azure Pipelines használatával.
Webalkalmazás üzembe helyezése
Ha olyan .zip fájlarchívumot szeretne létrehozni, amely készen áll a webalkalmazásban való közzétételre, adja hozzá a következő kódrészletet:
steps:
# ...
# do this after you've built your app, near the end of your pipeline in most cases
# for example, you do this before you deploy to an Azure web app on Windows
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
Az archívum webalkalmazásban való közzétételéhez tekintse meg az Azure Web Apps üzembe helyezését.
Rendszerkép létrehozása és leküldés a tárolóregisztrációs adatbázisba
Létrehozhat egy lemezképet az alkalmazáshoz, és leküldheti egy tárolóregisztrációs adatbázisba.
Szimbólumok közzététele
A PublishSymbols@2 feladat használatával szimbólumokat tehet közzé egy Azure Artifacts szimbólumkiszolgálón vagy fájlmegosztáson.
Ha például szimbólumokat szeretne közzétenni egy fájlmegosztásban, adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz:
- task: PublishSymbols@2
inputs:
SymbolsFolder: '$(Build.SourcesDirectory)'
SearchPattern: '**/bin/**/*.pdb'
IndexSources: true
PublishSymbols: true
SymbolServerType: 'FileShare'
SymbolsPath: '\\server\shareName'
A klasszikus szerkesztő használata esetén válassza az Indexforrás-közzétételi szimbólumokat a feladatkatalógusból a folyamathoz való hozzáadáshoz.
További információ: Szimbólumok közzététele.
Hibaelhárítás
Ha létrehozhatja a projektet a fejlesztői gépén, de problémákat tapasztal az Azure Pipelineson való létrehozás során, vizsgálja meg az alábbi lehetséges okokat és korrekciós műveleteket:
- A .NET Core SDK előzetes verziói nincsenek telepítve a Microsoft által üzemeltetett ügynökökre. A .NET Core SDK új verziójának kiadása után néhány hétbe telhet az összes Azure Pipelines-adatközpont üzembe helyezése. Nem kell megvárnia, amíg a bevezetés befejeződik. A .NET Core használata feladat használatával telepítheti a Microsoft által üzemeltetett ügynökökre a kívánt .NET Core SDK-verziót.
Ellenőrizze a fejlesztőgép .NET Core SDK-verzióit és futtatókörnyezetét, és győződjön meg arról, hogy azok megfelelnek az ügynöknek. A .NET Core SDK verziójának nyomtatásához parancssori szkriptet
dotnet --version
is hozzáadhat a folyamathoz. A .NET Core Tool Installer használatával telepítse ugyanazt a verziót az ügynökön, vagy frissítse projektjeit és fejlesztői gépét a .NET Core SDK újabb verziójára.Előfordulhat, hogy olyan logikát használ a Visual Studio IDE-ben, amely nincs kódolva a folyamatban. Az Azure Pipelines egy új folyamat során egymás után futtatja a feladatokban megadott parancsokat. Vizsgálja meg a folyamat buildjének naplóit, és tekintse meg a build részeként futtatott parancsokat. Ismételje meg ugyanazokat a parancsokat ugyanabban a sorrendben a fejlesztőgépen a probléma megkereséséhez.
Ha vegyes megoldással rendelkezik, amely tartalmaz néhány .NET Core-projektet és néhány .NET-keretrendszer-projektet, a NuGet-feladat használatával is visszaállíthatja a fájlokban
packages.config
megadott csomagokat. Adja hozzá az MSBuild vagy a Visual Studio buildelési feladatát a .NET-keretrendszer projektek létrehozásához.Előfordulhat, hogy a buildek időnként meghiúsulnak a csomagok visszaállítása során: NuGet.org problémákat tapasztal, vagy hálózati problémák merülnek fel az Azure-adatközpont és a NuGet.org között. Megtudhatja, hogy az Azure Artifacts és a NuGet.org felsőbb rétegbeli forrásként való használata javítja-e a buildek megbízhatóságát, mivel ez nem a mi irányításunk alatt áll.
Időnként előfordulhat, hogy a .NET Core SDK vagy a Visual Studio új verziójának bevezetésekor a build megszakadhat. A NuGet-eszköz egy újabb verziója vagy funkciója például az SDK-val együtt szállítva megszakíthatja a buildet. A probléma elkülönítéséhez a .NET Core Eszköztelepítő feladatával adja meg a buildben használt .NET Core SDK verzióját.
GYIK
K: Hol tudhatok meg többet az Azure Artifactsről?
Válasz: Csomagkezelés az Azure Artifactsben
K: Hol tudhatok meg többet a .NET Core-parancsokról?
Válasz: .NET Core CLI-eszközök
K: Hol tudhatok meg többet a tesztek megoldásban való futtatásáról?
Válasz: Egységtesztelés .NET Core-projektekben
K: Hol tudhatok meg többet a feladatokról?
Válasz: Buildelési és kiadási feladatok