Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Test sonuçlarını Azure Pipelines'da yayımlama.
Test Sonuçlarını Azure Pipelines/TFS'de yayımlama.
# 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.
# Publish Test Results v2
# Publish Test Results to Azure Pipelines/TFS.
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit' # 'JUnit' | 'NUnit' | 'VSTest' | 'XUnit'. 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.
#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.
testResultsFormat
- Test sonucu biçimi
Giriş diğer adı: testRunner
. string
. Gereklidir. İzin verilen değerler: JUnit
, NUnit
, VSTest
, XUnit
, CTest
. Varsayılan değer: JUnit
.
Yayımlamak istediğiniz sonuç dosyalarının biçimini belirtir. Aşağıdaki biçimler desteklenir: CTest, JUnit, NUnit 2, NUnit 3, Visual Studio Test (TRX) ve xUnit 2.
testResultsFormat
- Test sonucu biçimi
Giriş diğer adı: testRunner
. string
. Gereklidir. İzin verilen değerler: JUnit
, NUnit
, VSTest
, XUnit
. Varsayılan değer: JUnit
.
Yayımlamak istediğiniz sonuç dosyalarının biçimini belirtir. Aşağıdaki biçimler desteklenir: CTest, JUnit, NUnit 2, NUnit 3, Visual Studio Test (TRX) ve xUnit 2.
testResultsFiles
- Test sonuçları dosyaları
string
. Gereklidir. Varsayılan değer: **/TEST-*.xml
.
Bir veya daha fazla test sonucu dosyası belirtir.
*
) ve özyinelemeli joker karakter (**
kullanabilirsiniz. Örneğin, **/TEST-*.xml
tüm alt dizinlerde adları ile TEST-
başlayan tüm XML dosyalarını arar. Test sonucu biçimi olarak VSTest kullanılıyorsa, dosya türü şöyle değiştirilmelidir .trx
: **/TEST-*.trx
Örneğin, !TEST[1-3].xml
, TEST2.xml
veya TEST3.xml
adlı TEST1.xml
dosyaları dışlar.
searchFolder
- Arama klasörü
string
. Varsayılan değer: $(System.DefaultWorkingDirectory)
.
İsteğe bağlı. Test sonucu dosyalarının aranması için klasörü belirtir.
mergeTestResults
- Test sonuçlarını birleştirme
boolean
. Varsayılan değer: false
.
Bu boole değerinin değeri olduğunda true
, görev tek bir test çalıştırmasına karşı tüm dosyalardan test sonuçlarını raporlar. değer ise false
, görev her test sonucu dosyası için ayrı bir test çalıştırması oluşturur.
Not
Sonuçları eşleme ve sürenin doğru hesaplandığından emin olmak için aynı test çerçevesindeki dosyaları birleştirmek için test sonuçlarını birleştirme ayarını kullanın.
failTaskOnFailedTests
- Test hataları varsa başarısız olur
boolean
. Varsayılan değer: false
.
İsteğe bağlı. Bu boole değerinin değeri olduğunda true
, sonuç dosyasındaki testlerden herhangi biri başarısız olarak işaretlenirse görev başarısız olur. Varsayılan değer olan false
, sonuç dosyasındaki sonuçları yayımlar.
failTaskOnFailureToPublishResults
- Test sonuçlarını yayımlamada hata varsa başarısız olur
boolean
. Varsayılan değer: false
.
olduğunda true
, test sonuçlarını yayımlamada hata varsa görevi başarısız olur.
failTaskOnMissingResultsFile
- Sonuç dosyası bulunamazsa başarısız olur
boolean
. Varsayılan değer: false
.
Sonuç dosyası bulunamazsa görev başarısız olur.
testRunTitle
- Test çalıştırması başlığı
string
.
İsteğe bağlı. Sonuçların bildirileceği test çalıştırması için bir ad belirtir. Derleme veya yayın işlem hattında bildirilen değişken adları kullanılabilir.
buildPlatform
- Platform Oluşturma
Giriş diğer adı: platform
. string
.
İsteğe bağlı. Test çalıştırmasının raporlanması gereken derleme platformunu belirtir. Örneğin: x64
veya x86
. Derleme görevinizde platform için bir değişken tanımladıysanız burada kullanın.
buildConfiguration
- Derleme Yapılandırması
Giriş diğer adı: configuration
. string
.
İsteğe bağlı. Test çalıştırmasının raporlanması gereken derleme yapılandırmasını belirtir. Örneğin: Debug
veya Release
. Derleme görevinizdeki yapılandırma için bir değişken tanımladıysanız burada kullanın.
publishRunAttachments
- Test sonuçları dosyalarını karşıya yükleme
boolean
. Varsayılan değer: true
.
İsteğe bağlı. Bu boole değerinin değeri olduğunda true
, görev tüm test sonucu dosyalarını test çalıştırmasına ek olarak yükler.
Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.
Yok.
Bu görev, kapsamlı bir test raporlama ve analiz deneyimi sağlamak için testler yürütürken test sonuçlarını Azure Pipelines veya TFS'de yayımlar. İstediğiniz test çalıştırıcısını kullanarak ihtiyacınız olan sonuç biçimini destekleyebilirsiniz. Desteklenen sonuç biçimleri CTest, JUnit (PHPUnit dahil), NUnit 2, NUnit 3, Visual Studio Test (TRX) ve xUnit 2'dir.
Visual Studio Test görevi ve Dot NetCore CLI görevi gibi diğer yerleşik görevler, test sonuçlarını otomatik olarak işlem hattına yayımlar. Ant, Maven, Gulp, Grunt ve Xcode gibi görevler, görev içinde bir seçenek olarak yayımlama sonuçları sağlar veya Cobertura ve JaCoCo gibi kitaplıklar oluşturur. Bu görevlerden herhangi birini kullanıyorsanız, işlem hattında ayrı bir Test Sonuçlarını Yayımla görevine ihtiyacınız yoktur.
Yayımlanan test sonuçları, işlem hattı özetindeki Testler sekmesinde görüntülenir. Sonuçlar işlem hattı kalitesini ölçmenize, izlenebilirliği gözden geçirmenize, hataları gidermenize ve sürücü hatası sahipliğini gidermenize yardımcı olur.
Aşağıdaki örnekte görevin test sonuçlarını yayımlayacak şekilde yapılandırıldığı gösterilmektedir.
Bu görevi, kapsam raporlaması almak amacıyla testleri çalıştırırken oluşturulan kod kapsamı sonuçlarını Azure Pipelines veya TFS'de yayımlamak için bir derleme işlem hattında da kullanabilirsiniz.
Windows şirket içinde barındırılan aracı kullanıyorsanız makinenizde şu önkoşul yüklü olmalıdır:
Varsayılan seçenek, test sonuçlarını yayımlamak için JUnit biçimini kullanır. TESTRunner olarak VSTest kullanılırken testResultsFiles seçeneği olarak **/TEST-*.trx
değiştirilmelidir.
testResultsFormat , testRunner giriş adı için bir diğer addır. Sonuç dosyaları yalnızca belirli bir çalıştırıcı tarafından değil, birden çok çalıştırıcı tarafından oluşturulabilir. Örneğin, jUnit sonuç biçimi yalnızca jUnit tarafından değil, birçok çalıştırıcı tarafından desteklenir.
YAML kullanarak Python'a yönelik test sonuçlarını yayımlamak için, diğer dillere yönelik örnekleri de içeren bu konuların Ekosistemler bölümünde Python'a bakın.
Bu tabloda, derleme veya yayın özetinde Testler sekmesinde bildirilen alanlar ve desteklenen test sonucu biçimlerindeki özniteliklerle ilgili eşleme listelenir.
Kapsam | Alan | Visual Studio Testi (TRX) |
---|---|---|
Test çalıştırması | Başlık | Görevde belirtilen test çalıştırması başlığı |
Başlangıç tarihi | /TestRun/Times.Attributes["start"]. Değer | |
Tamamlanma tarihi | /TestRun/Times.Attributes["finish"]. Değer | |
Süre | Tamamlanma tarihi - Başlangıç tarihi | |
Ekler | Aşağıdaki Ekler destek bölümüne bakın | |
Test sonucu | Başlık | /TestRun/Results/UnitTestResult.Attributes["testName"]. Value Or /TestRun/Results/WebTestResult.Attributes["testName"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["testName"]. Değer |
Başlangıç tarihi | /TestRun/Results/UnitTestResult.Attributes["startTime"]. Value Or /TestRun/Results/WebTestResult.Attributes["startTime"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["startTime"]. Değer | |
Tamamlanma tarihi | /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"]. Değer | |
Süre | /TestRun/Results/UnitTestResult.Attributes["duration"]. Value Or /TestRun/Results/WebTestResult.Attributes["duration"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["duration"]. Değer | |
Sahip | /TestRun/TestDefinitions/UnitTest/Owners/Owner.Attributes["name"]. Değer | |
Sonuç | /TestRun/Results/UnitTestResult.Attributes["outcome"]. Value Or /TestRun/Results/WebTestResult.Attributes["outcome"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["outcome"]. Değer | |
Hata iletisi | /TestRun/Results/UnitTestResult/Output/ErrorInfo/Message.InnerText veya /TestRun/Results/WebTestResultOutput/ErrorInfo/Message.InnerText veya /TestRun/Results/TestResultAggregation/Output/ErrorInfo/Message.InnerText | |
Yığın izleme | /TestRun/Results/UnitTestResult/Output/ErrorInfo/StackTrace.InnerText veya /TestRun/Results/WebTestResultOutput/ErrorInfo/StackTrace.InnerText veya /TestRun/Results/TestResultAggregation/Output/ErrorInfo/StackTrace.InnerText | |
Ekler | Aşağıdaki Ekler destek bölümüne bakın | |
Konsol günlüğü | /TestRun/Results/UnitTestResult/Output/StdOut.InnerText or /TestRun/Results/WebTestResultOutput/Output/StdOut.InnerText or /TestRun/Results/TestResultAggregation/Output/StdOut.InnerText | |
Konsol hata günlüğü | /TestRun/Results/UnitTestResult/Output/StdErr.InnerText Or /TestRun/Results/WebTestResultOutput/Output/StdErr.InnerText Or /TestRun/Results/TestResultAggregation/Output/StdErr.InnerText | |
Aracı adı | /TestRun/Results/UnitTestResult.Attributes["computerName"]. Value Or /TestRun/Results/WebTestResult.Attributes["computerName"]. Value Or /TestRun/Results/TestResultAggregation.Attributes["computerName"]. Değer | |
Test dosyası | /TestRun/TestDefinitions/UnitTest.Attributes["storage"]. Değer | |
Öncelik | /TestRun/TestDefinitions/UnitTest.Attributes["priority"]. Değer |
Not
Süre yalnızca Başlangıç tarihi ve Tamamlanma tarihi kullanılamadığında kullanılır.
testName için tam ad biçimi, 512 karakter sınırına sahip Namespace.Testclass.Methodname biçimidir. Test veri temelliyse ve parametreleri varsa, karakter sınırı parametreleri içerir.
Test sonucunu yayımlarken şu hatayı alabilirsiniz: Test sonuçları yayımlanamadı: Geçersiz Öncelik belirtildi
Test yöntemlerinden herhangi birinin önceliği 255'in üzerinde ayarlanmışsa, koddaki test yöntemi önceliğini düzeltirse ve testleri yeniden yürütürse bu hata oluşur. 255'ten büyük önceliğe sahip tüm testleri görmek için oluşturulan trx dosyasını gözden geçirebilirsiniz.
Test Sonuçlarını Yayımla görevi, aşağıdaki biçimler için hem test çalıştırması hem de test sonuçları için ekler için destek sağlar. Genel projeler için toplam 2 GB ekleri destekliyoruz.
Kapsam | Tür | Yol |
---|---|---|
Test çalıştırması | Veri Toplayıcı | /TestRun/ResultSummary/CollectorDataEntries/Collector/UriAttachments/UriAttachment/A.Attributes["href"]. Değer |
Test Sonucu | /TestRun/ResultSummary/ResultFiles/ResultFile.Attributes["path"]. Değer | |
Kod Kapsamı | /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"]. Değer | |
Test sonucu | Veri Toplayıcılar | /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"]. Değer |
Test Sonucu | /TestRun/Results/UnitTestResult/ResultFiles/ResultFile.Attributes["path"]. Value Or /TestRun/Results/WebTestResult/ResultFiles/ResultFile.Attributes["path"]. Value Or /TestRun/Results/TestResultAggregation/ResultFiles/ResultFile.Attributes["path"]. Değer |
Not
Test sonuçları dosyasını ek olarak karşıya yükleme seçeneği, görevdeki tüm biçimler için geçerli olan varsayılan bir seçenektir.
Docker tabanlı uygulamalar için uygulamanızı derlemenin ve testleri çalıştırmanın birçok yolu vardır:
Bu yaklaşımda kodunuzu derler ve docker dosyası kullanarak kapsayıcının içinde testler çalıştırırsınız. Test sonuçları daha sonra işlem hattında yayımlanmak üzere konağa kopyalanır. Test sonuçlarını Azure Pipelines'da yayımlamak için Test Sonuçlarını Yayımla görevini kullanabilirsiniz. Son görüntü Docker'da veya Azure Container Registry yayımlanır.
Proje dizininizin kökünde aşağıdakilerle bir Dockerfile.build
dosya oluşturun:
# 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.dll
Bu dosya, kod oluşturma ve testleri çalıştırma yönergelerini içerir. Testler daha sonra kapsayıcı içindeki bir dosyaya testresults.trx
kopyalanır.
Yalnızca çalışma zamanı ve dağıtım yapıtlarını içeren son görüntüyü mümkün olduğunca küçük hale getirmek için, var olanın Dockerfile
içeriğini aşağıdakilerle değiştirin:
# 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"]
Docker Hub hesabınız varsa ve görüntüyü Docker kayıt defterinize göndermek istiyorsanız, dosyanın içeriğini .vsts-ci.docker.yml
aşağıdakilerle değiştirin:
# 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)
Alternatif olarak, bir Azure Container Registry yapılandırıp görüntüyü bu kayıt defterine göndermek istiyorsanız, dosyanın içeriğini .vsts-ci.yml
aşağıdakilerle değiştirin:
# 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)
Değişikliği deponuzdaki ana dala gönderin.
Azure Container Registry kullanıyorsanız, Azure portal kayıt defterini önceden oluşturduğunuzdan emin olun. Azure portal kayıt defteri ayarlarının Erişim anahtarları bölümünde gösterilen yönetici kullanıcı adını ve parolasını kopyalayın.
Derleme işlem hattınızı aşağıdakilerle güncelleştirin
Hosted Ubuntu 1604
/.vsts-ci.docker.yml
Yeni bir derlemeyi kuyruğa alın ve oluşturup watch bir Docker görüntüsü oluşturup kayıt defterinize ve test sonuçlarını Azure DevOps'a gönderin.
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talep | Hiçbiri |
Özellikler | Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi biri |
Ayarlanabilir değişkenler | Herhangi biri |
Aracı sürümü | 2.0.0 veya üzeri |
Görev kategorisi | Test etme |
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolun