Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Teszteredmények közzététele az Azure Pipelinesban.
Szinopszis
# Publish Test Results v2
# Publish test results to Azure Pipelines.
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit' # 'JUnit' | 'NUnit' | 'VSTest' | 'XUnit' | 'CTest'. Alias: testRunner. Required. Test result format. Default: JUnit.
testResultsFiles: '**/TEST-*.xml' # string. Required. Test results files. Default: **/TEST-*.xml.
#searchFolder: '$(System.DefaultWorkingDirectory)' # string. Search folder. Default: $(System.DefaultWorkingDirectory).
#mergeTestResults: false # boolean. Merge test results. Default: false.
#failTaskOnFailedTests: false # boolean. Fail if there are test failures. Default: false.
#failTaskOnFailureToPublishResults: false # boolean. Fail if there is failure in publishing test results. Default: false.
#failTaskOnMissingResultsFile: false # boolean. Fail if no result files are found. Default: false.
#testRunTitle: # string. Test run title.
# Advanced
#buildPlatform: # string. Alias: platform. Build Platform.
#buildConfiguration: # string. Alias: configuration. Build Configuration.
#publishRunAttachments: true # boolean. Upload test results files. Default: true.
# Publish Test Results v2
# Publish test results to Azure Pipelines.
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit' # 'JUnit' | 'NUnit' | 'VSTest' | 'XUnit' | 'CTest'. Alias: testRunner. Required. Test result format. Default: JUnit.
testResultsFiles: '**/TEST-*.xml' # string. Required. Test results files. Default: **/TEST-*.xml.
#searchFolder: '$(System.DefaultWorkingDirectory)' # string. Search folder. Default: $(System.DefaultWorkingDirectory).
#mergeTestResults: false # boolean. Merge test results. Default: false.
#failTaskOnFailedTests: false # boolean. Fail if there are test failures. Default: false.
#testRunTitle: # string. Test run title.
# Advanced
#buildPlatform: # string. Alias: platform. Build Platform.
#buildConfiguration: # string. Alias: configuration. Build Configuration.
#publishRunAttachments: true # boolean. Upload test results files. Default: true.
Bemenetek
testResultsFormat
-
Teszteredmény formátuma
Bemeneti alias: testRunner.
string. Szükséges. Engedélyezett értékek: JUnit, NUnit, VSTest, XUnit, CTest. Alapértelmezett érték: JUnit.
Megadja a közzétenni kívánt találatfájlok formátumát. A következő formátumok támogatottak: CTest, JUnit, NUnit 2, NUnit 3, Visual Studio Test (TRX) és xUnit 2.
Jótanács
VSTest formátum a TRX formátumra utal. Tehát akkor is működik, ha a TRX-et a Microsoft.Testing.Platform (MTP) használatával készíti elő, és nem a VSTestre jellemző. Az érték történelmi okokból, az MTP bevezetése előtt VSTest.
testResultsFiles
-
teszteredmény-fájlok
string. Szükséges. Alapértelmezett érték: **/TEST-*.xml.
Egy vagy több teszteredményfájlt határoz meg.
- Használhat egy egymappás helyettesítő karaktert (
*) és rekurzív helyettesítő karaktereket (**).**/TEST-*.xmlpéldául az összes olyan XML-fájlt keresi, amelynek a neveTEST-kezdődik az összes alkönyvtárban. Ha VSTestet használ teszteredmény-formátumként, a fájltípust.trxkell módosítani, például**/TEST-*.trx - Több elérési út is megadható, egy új vonallal elválasztva.
- Emellett elfogadja minimatch mintákat.
Például !TEST[1-3].xml kizárja a TEST1.xml, TEST2.xmlvagy TEST3.xmlnevű fájlokat.
searchFolder
-
Keresési mappa
string. Alapértelmezett érték: $(System.DefaultWorkingDirectory).
Opcionális. Megadja a teszteredmény-fájlok kereséséhez szükséges mappát.
mergeTestResults
-
Teszteredmények egyesítése
boolean. Alapértelmezett érték: false.
Ha a logikai érték true, a feladat az összes fájlból származó teszteredményeket jelenti egyetlen teszt futtatásához. Ha az érték false, a feladat külön tesztfuttatást hoz létre az egyes teszteredmény-fájlokhoz. A jobb teljesítmény érdekében az eredmények mindig egyetlen futtatásba lesznek egyesítve, ha több mint 100 találatfájl van, még akkor is, ha ez a beállítás falsevan beállítva.
Megjegyzés
Az egyesítési teszt eredményeinek beállításával egyesítheti az azonos tesztelési keretrendszerből származó fájlokat annak érdekében, hogy az eredmények leképezése és időtartama megfelelően legyen kiszámítva.
failTaskOnFailedTests
-
Sikertelen, ha tesztelési hibák
boolean. Alapértelmezett érték: false.
Opcionális. Ha a logikai érték true, a feladat meghiúsul, ha az eredményfájlban lévő tesztek bármelyike sikertelenként van megjelölve. Az alapértelmezett érték a false, amely egyszerűen közzéteszi az eredményeket az eredményfájlból.
failTaskOnFailureToPublishResults
-
Sikertelen, ha a teszteredmények közzététele sikertelen
boolean. Alapértelmezett érték: false.
Ha true, a feladat meghiúsul, ha a teszteredmények közzététele sikertelen.
failTaskOnMissingResultsFile
-
Sikertelen, ha nem találhatók eredményfájlok
boolean. Alapértelmezett érték: false.
Sikertelen feladat, ha nem található eredményfájl.
testRunTitle
-
tesztelési cím
string.
Opcionális. Megadja annak a tesztfuttatásnak a nevét, amelyen az eredményeket jelenteni fogja. A buildelési vagy kiadási folyamatban deklarált változónevek használhatók.
buildPlatform
-
buildplatform-
Bemeneti alias: platform.
string.
Opcionális. Meghatározza azt a buildplatformot, amelyen a tesztfuttatást jelenteni kell. Például: x64 vagy x86. Ha a buildelési feladatban definiált egy változót a platformhoz, használja itt.
buildConfiguration
-
buildkonfigurációs
Bemeneti alias: configuration.
string.
Opcionális. Azt a buildkonfigurációt adja meg, amely alapján a tesztfuttatást jelenteni kell. Például: Debug vagy Release. Ha definiált egy változót a konfigurációhoz a buildelési feladatban, használja itt.
publishRunAttachments
-
Teszteredmény-fájlok feltöltése
boolean. Alapértelmezett érték: true.
Opcionális. Ha a logikai érték true, a feladat feltölti az összes teszteredményfájlt mellékletként a tesztfuttatáshoz.
Feladatvezérlési lehetőségek
Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlők és gyakori feladattulajdonságok.
Kimeneti változók
Nincs.
Megjegyzések
- Előfeltételek
- tevékenység alapértelmezés szerint
- Találatformátumok leképezési
- mellékletek támogatják a
Ez a feladat közzéteszi a teszteredményeket az Azure Pipelinesban vagy a TFS-ben a tesztek végrehajtásakor, hogy átfogó tesztjelentési és elemzési élményt nyújtson. Használhatja a választott tesztfuttatót, amely támogatja a kívánt eredményformátumot. Támogatott találatformátumok: CTest, JUnit (beleértve PHPUnit), NUnit 2, NUnit 3, Visual Studio Test (TRX) és xUnit 2.
Egyéb beépített feladatok, például Visual Studio-tesztfeladat és Dot NetCore CLI-feladat, automatikusan közzéteszik a teszteredményeket a folyamaton. Az olyan feladatok, mint a Ant, Maven, Gulp, Gruntés Xcode, közzétételi eredményeket biztosítanak a feladaton belül, vagy olyan kódtárakat hozhatnak létre, mint Cobertura és JaCoCo. Ha ezek közül a tevékenységek közül bármelyiket használja, nincs szükség külön teszteredmények közzétételére feladatra a folyamatban.
A közzétett teszteredmények a folyamat összegzésében Tesztek lapon jelennek meg. Az eredmények segítenek felmérni a folyamat minőségét, áttekinteni a nyomon követhetőséget, a hibák elhárítását és a meghajtók tulajdonjogát.
Az alábbi példa azt mutatja be, hogy a feladat a teszteredmények közzétételére van konfigurálva.
Ezt a feladatot egy buildfolyamatban is használhatja a kódlefedettségi eredmények közzétételére , amikor teszteket futtat az Azure Pipelinesban vagy a TFS-ben a lefedettségi jelentések lekérése érdekében.
Előfeltételek
Ha windowsos, saját üzemeltetésű ügynököt használ, a számítógépen telepítve kell lennie a következő előfeltételnek:
- .NET-keretrendszer 4.6.2-es vagy újabb verziója
A tevékenység alapértelmezései
Az alapértelmezett beállítás JUnit formátummal teszi közzé a teszteredményeket. Ha VSTestet használ a testRunner, a testResultsFiles beállítást **/TEST-*.trxkell módosítani.
testResultsFormat a testRunner bemeneti név aliasa. Az eredményfájlokat több futó is létrehozhatja, nem csak egy adott futó. A jUnit-eredmények formátumát például számos futó támogatja, és nem csak a jUnit.
Ha YAML-lel szeretné közzétenni a Python teszteredményeit, tekintse meg Python- a témakörök Ökoszisztémák című szakaszában, amely más nyelvekre is tartalmaz példákat.
Találatformátumok leképezése
Ez a táblázat felsorolja a Tesztek lapon jelentett mezőket, egy build vagy kiadás összegzésében, valamint a megfelelő leképezést a támogatott teszteredmény-formátumok attribútumaival.
| Hatókör | Mező | Visual Studio-teszt (TRX) |
|---|---|---|
| tesztfuttatási | Cím | tesztfuttatási cím megadva a feladatban |
| Kezdés dátuma | /TestRun/Times.Attributes[""]. Érték | |
| Befejezés dátuma | /TestRun/Times.Attributes["befejezési"]. Érték | |
| Időtartam | Befejezett dátum – Kezdés dátuma | |
| Mellékletek | Tekintse meg az alábbi Mellékletek támogatási című szakaszt | |
| teszteredmények | Cím | /TestRun/Results/UnitTestResult.Attributes["testName"]. Value Or /TestRun/Results/WebTestResult.Attributes["testName"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["testName"]. Érték |
| Kezdés dátuma | /TestRun/Results/UnitTestResult.Attributes["startTime"]. Value Or /TestRun/Results/WebTestResult.Attributes["startTime"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["startTime"]. Érték | |
| Befejezés dátuma | /TestRun/Results/UnitTestResult.Attributes["startTime"]. Value + /TestRun/Results/UnitTestResult.Attributes["duration"]. Value Or /TestRun/Results/WebTestResult.Attributes["startTime"]. Value + /TestRun/Results/WebTestResult.Attributes["duration"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["startTime"]. Value + /TestRun/Results/TestResultAggregation.Attributes["duration"]. Érték | |
| Időtartam | /TestRun/Results/UnitTestResult.Attributes["időtartam"]. Érték vagy /TestRun/Results/WebTestResult.Attributes["időtartam"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["duration"]. Érték | |
| Tulajdonos | /TestRun/TestDefinitions/UnitTest/Owners/Owner.Attributes["name"]. Érték | |
| Eredmény | /TestRun/Results/UnitTestResult.Attributes["eredménye"]. Érték vagy /TestRun/Results/WebTestResult.Attributes["eredménye"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["eredmény"]. Érték | |
| Hibaüzenet | /TestRun/Results/UnitTestResult/Output/ErrorInfo/Message.InnerText vagy /TestRun/Results/WebTestResultOutput/ErrorInfo/Message.InnerText vagy /TestRun/Results/TestResultAggregation/Output/ErrorInfo/Message.InnerText | |
| Verem nyomkövetése | /TestRun/Results/UnitTestResult/Output/ErrorInfo/StackTrace.InnerText Vagy /TestRun/Results/WebTestResultOutput/ErrorInfo/StackTrace.InnerText Vagy /TestRun/Results/TestResultAggregation/Output/ErrorInfo/StackTrace.InnerText | |
| Mellékletek | Tekintse meg az alábbi Mellékletek támogatási című szakaszt | |
| Konzolnapló | /TestRun/Results/UnitTestResult/Output/StdOut.InnerText Vagy /TestRun/Results/WebTestResultOutput/Output/StdOut.InnerText Vagy /TestRun/Results/TestResultAggregation/Output/StdOut.InnerText | |
| Konzol hibanaplója | /TestRun/Results/UnitTestResult/Output/StdErr.InnerText Vagy /TestRun/Results/WebTestResultOutput/Output/StdErr.InnerText Vagy /TestRun/Results/TestResultAggregation/Output/StdErr.InnerText | |
| Ügynök neve | /TestRun/Results/UnitTestResult.Attributes["computerName"]. Value Or /TestRun/Results/WebTestResult.Attributes["computerName"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["computerName"]. Érték | |
| Fájl tesztelése | /TestRun/TestDefinitions/UnitTest.Attributes["storage"]. Érték | |
| Elsőbbség | /TestRun/TestDefinitions/UnitTest.Attributes["prioritás"]. Érték |
Megjegyzés
Időtartam csak akkor használatos, ha Kezdés dátuma és Befejezett dátum nem érhető el.
A testName teljes névformátuma Namespace.Testclass.Methodname 512 karakterkorláttal. Ha a teszt adatvezérelt, és paraméterekkel rendelkezik, a karakterkorlát tartalmazza a paramétereket.
A teszt eredményének közzététele közben a következő hibaüzenet jelenhet meg: Nem sikerült közzétenni a teszt eredményeit: Érvénytelen prioritás van megadva
Ez a hiba akkor fordul elő, ha bármelyik vizsgálati módszer prioritása 255 felett van, javítsa ki a tesztmetódus prioritását a kódban, és hajtsa végre újra a teszteket. A létrehozott TRX-fájl áttekintésével megtekintheti a 255-nél nagyobb prioritású teszteket.
Mellékletek támogatása
A Teszteredmények közzététele feladat támogatja a mellékleteket mind a tesztfuttatáshoz, mind a tesztelési eredményekhez a következő formátumokhoz. Nyilvános projektek esetén összesen 2 GB mellékletet támogatunk.
Visual Studio-teszt (TRX)
| Hatókör | Típus szerint | Útvonal |
|---|---|---|
| tesztfuttatási | Adatgyűjtő | /TestRun/ResultSummary/CollectorDataEntries/Collector/UriAttachments/UriAttachment/A.Attributes["href"]. Érték |
| Teszteredmény | /TestRun/ResultSummary/ResultFiles/ResultFile.Attributes["elérési út"]. Érték | |
| Kódlefedettség | /TestRun/TestSettings/Execution/AgentRule/DataCollectors/DataCollector/Configuration/CodeCoverage/Regular/CodeCoverageItem.Attributes["binaryFile"]. Value And /TestRun/TestSettings/Execution/AgentRule/DataCollectors/DataCollector/Configuration/CodeCoverage/Regular/CodeCoverageItem.Attributes["pdbFile"]. Érték | |
| teszteredmény | Adatgyűjtők | /TestRun/Results/UnitTestResult/CollectorDataEntries/Collector/UriAttachments/UriAttachment/A.Attributes["href"]. Value Or /TestRun/Results/WebTestResult/CollectorDataEntries/Collector/UriAttachments/UriAttachment/A.Attributes["href"]. Value Or /TestRun/Results/TestResultAggregation/CollectorDataEntries/Collector/UriAttachments/UriAttachment/A.Attributes["href"]. Érték |
| Teszteredmény | /TestRun/Results/UnitTestResult/ResultFiles/ResultFile.Attributes["elérési út"]. Value Or /TestRun/Results/WebTestResult/ResultFiles/ResultFile.Attributes["path"]. Value Or /TestRun/Results/TestResultAggregation/ResultFiles/ResultFile.Attributes["path"]. Érték |
Megjegyzés
A teszteredmény-fájl mellékletként való feltöltésének lehetősége a feladatban alapértelmezett beállítás, amely minden formátumra alkalmazható.
Példák
Kikötőmunkás
Docker-alapú alkalmazások esetén számos módon hozhatja létre az alkalmazást, és futtathat teszteket:
- buildelési folyamat összeállítása és tesztelése: a folyamatban végrehajtott buildek és tesztek, valamint a teszteredmények közzététele a Teszteredmények közzététele feladat használatával történik.
- Többfázisú Dockerfile-: a buildek és tesztek többfázisú Docker-fájl használatával futnak a tárolóban, mivel az ilyen teszteredmények nem kerülnek vissza a folyamatba.
- Dockerfile-használatával hozhat létre, tesztelhet és tehet közzé eredményeket: buildeket és teszteket hajt végre a tárolón belül, és az eredményeket közzéteszi a folyamat. Lásd az alábbi példát.
Eredmények létrehozása, tesztelése és közzététele Docker-fájllal
Ebben a megközelítésben egy Docker-fájl használatával hozza létre a kódot, és teszteket futtat a tárolóban. A teszteredmények ezután át lesznek másolva a gazdagépre, amelyet közzé kell tenni a folyamaton. A teszteredmények Azure Pipelinesban való közzétételéhez használhatja a Teszteredmények közzététele feladatot. A végső rendszerkép közzé lesz téve a Dockerben vagy az Azure Container Registryben.
A kód lekérése
Hozzon létre egy
Dockerfile.buildfájlt a projektkönyvtár gyökerénél a következőkkel:# Build and run tests inside the docker container FROM mcr.microsoft.com/dotnet/sdk:2.1 WORKDIR /app # copy the contents of agent working directory on host to workdir in container COPY . ./ # dotnet commands to build, test, and publish RUN dotnet restore RUN dotnet build -c Release RUN dotnet test dotnetcore-tests/dotnetcore-tests.csproj -c Release --logger "trx;LogFileName=testresults.trx" RUN dotnet publish -c Release -o out ENTRYPOINT dotnet dotnetcore-sample/out/dotnetcore-sample.dllEz a fájl tartalmazza a kód készítésére és a tesztek futtatására vonatkozó utasításokat. A tesztek ezután át lesznek másolva egy fájlba,
testresults.trxa tárolón belül.Ha a végső rendszerképet a lehető legkisebbre szeretné kicsinyíteni, amely csak a futtatókörnyezetet és az üzembe helyezési összetevőket tartalmazza, cserélje le a meglévő
Dockerfiletartalmát a következőre:# This Dockerfile creates the final image to be published to Docker or # Azure Container Registry # Create a container with the compiled asp.net core app FROM mcr.microsoft.com/dotnet/aspnet:2.1 # Create app directory WORKDIR /app # Copy only the deployment artifacts COPY /out . ENTRYPOINT ["dotnet", "dotnetcore-sample.dll"]
A buildelési folyamat definiálása
Ha rendelkezik Docker Hub-fiókkal, és le szeretné küldeni a rendszerképet a Docker-beállításjegyzékbe, cserélje le a
.vsts-ci.docker.ymlfájl tartalmát a következőre:# Build Docker image for this app, to be published to Docker Registry pool: vmImage: 'ubuntu-latest' variables: buildConfiguration: 'Release' steps: - script: | docker build -f Dockerfile.build -t $(dockerId)/dotnetcore-build:$BUILD_BUILDID . docker run --name dotnetcoreapp --rm -d $(dockerId)/dotnetcore-build:$BUILD_BUILDID docker cp dotnetcoreapp:app/dotnetcore-tests/TestResults $(System.DefaultWorkingDirectory) docker cp dotnetcoreapp:app/dotnetcore-sample/out $(System.DefaultWorkingDirectory) docker stop dotnetcoreapp - task: PublishTestResults@2 inputs: testRunner: VSTest testResultsFiles: '**/*.trx' failTaskOnFailedTests: true - script: | docker build -f Dockerfile -t $(dockerId)/dotnetcore-sample:$BUILD_BUILDID . docker login -u $(dockerId) -p $pswd docker push $(dockerId)/dotnetcore-sample:$BUILD_BUILDID env: pswd: $(dockerPassword)Ha konfigurál egy Azure Container Registryt, és le szeretné küldeni a rendszerképet a beállításjegyzékbe, cserélje le a
.vsts-ci.ymlfájl tartalmát a következőre:# Build Docker image for this app to be published to Azure Container Registry pool: vmImage: 'ubuntu-latest' variables: buildConfiguration: 'Release' steps: - script: | docker build -f Dockerfile.build -t $(dockerId)/dotnetcore-build:$BUILD_BUILDID . docker run --name dotnetcoreapp --rm -d $(dockerId)/dotnetcore-build:$BUILD_BUILDID docker cp dotnetcoreapp:app/dotnetcore-tests/TestResults $(System.DefaultWorkingDirectory) docker cp dotnetcoreapp:app/dotnetcore-sample/out $(System.DefaultWorkingDirectory) docker stop dotnetcoreapp - task: PublishTestResults@2 inputs: testRunner: VSTest testResultsFiles: '**/*.trx' failTaskOnFailedTests: true - script: | docker build -f Dockerfile -t $(dockerId).azurecr.io/dotnetcore-sample:$BUILD_BUILDID . docker login -u $(dockerId) -p $pswd $(dockerid).azurecr.io docker push $(dockerId).azurecr.io/dotnetcore-sample:$BUILD_BUILDID env: pswd: $(dockerPassword)A módosítás leküldése az adattár fő ágára.
Ha az Azure Container Registryt használja, győződjön meg arról, hogy előre létrehozta a beállításjegyzék- az Azure Portalon. Másolja ki az Azure Portal beállításjegyzék-beállításainak hozzáférési kulcsok szakaszában látható rendszergazdai felhasználónevet és jelszót.
A buildelési folyamat frissítése a következőkkel
-
ügynökkészlet:
Hosted Ubuntu 1604- dockerId: Állítsa be az értéket a DockerHub Docker-azonosítójára vagy az Azure Container Registry rendszergazdai felhasználónevére.
- dockerPassword: Állítsa be az értéket a DockerHubhoz vagy az Azure Container Registry rendszergazdai jelszavához.
-
YAML-fájl elérési útja:
/.vsts-ci.docker.yml
-
ügynökkészlet:
Várjon egy új buildet, és figyelje meg, ahogy létrehoz és leküld egy Docker-rendszerképet a beállításjegyzékbe, valamint a teszteredményeket az Azure DevOpsba.
Követelmények
| Követelmény | Leírás |
|---|---|
| Folyamattípusok | YAML, klasszikus build, klasszikus kiadás |
| Futtatás bekapcsolva | Ügynök, DeploymentGroup |
| Követelmények | Egyik sem |
| képességek | Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
| parancskorlátozások | Bármely |
| Változók beállítása | Bármely |
| Ügynök verziója | 2.0.0 vagy újabb |
| Tevékenységkategória | Teszt |