Kod kapsamı sonuçları Yayımla görevi

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015

kapsam raporlamayı almak için Azure Pipelines veya TFS 'ye testler çalıştırılırken oluşturulan kod kapsamı sonuçlarını yayımlamak için bu görevi bir yapı ardışık düzeninde kullanın. Görev, Cobertura ve Jacocogibi popüler kapsam sonuç biçimlerini destekler.

Bu görev yalnızca derleme işlem hatları içinde kullanılabilir ve yayın işlem hatları 'nda desteklenmez.

Visual Studio Test, .net Core, Ant, maven, Gulp, grde gibi görevler, kod kapsamı verilerini işlem hattına yayımlama seçeneği de sağlar. Bu görevleri kullanıyorsanız, işlem hattında ayrı bir kod kapsamı sonuçları yayımlama görevine gerek kalmaz.

Erişim

HTML kod kapsamı raporu oluşturmak için, aracıda DotNet 2.0.0 veya üzeri gerekir. DotNet klasörünün ortam yolunda olması gerekir. DotNet içeren birden çok klasör varsa, sürüm 2.0.0 olan biri yol listesindeki diğer öğelerden önce gelmelidir.

YAML kod parçacığı

# Publish code coverage results
# Publish Cobertura or JaCoCo code coverage results from a build
- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo' # Available options: 'JaCoCo', 'Cobertura'
    summaryFileLocation: 
    #pathToSources: # Optional
    #reportDirectory: # Optional
    #additionalCodeCoverageFiles: # Optional
    #failIfCoverageEmpty: false # Optional

Codekapak Agetool ve summaryfilelocation parametreleri zorunludur.

YAML kullanarak Istanbul ile JavaScript için kod kapsamı sonuçlarını yayımlamak için, bu konuların ekosistemler bölümündeki JavaScript bölümüne bakın ve bu da diğer dillere yönelik örnekleri içerir.

Cobertura kullanarak kod kapsamı yayımlamayı bir örnek görmek için, kod kapsamı üzerinde bu bölüme bakın.

Bağımsız değişkenler

Bağımsız Değişken Description
codeCoverageTool
Kod kapsamı aracı
Istenir Varsayılan olarak, Jacocokullanın. Kullanılabilir seçenekler: JaCoCo, Cobertura.
summaryFileLocation
Özet dosyalarının yolu
Istenir Satır, yöntem ve sınıf kapsamı gibi kod kapsamı istatistiklerini içeren Özet dosyasının yolu. Birden fazla Özet dosyası, tek bir raporda birleştirilir. Değerde minimatch desenleri bulunabilir.
Örnek: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura/coverage.xml
pathToSources
Kaynak dosyaların yolu
Seçim Kapsam XML raporları kaynak dosyalara mutlak yol içermiyorsa kaynak dosyaların yolu gereklidir.
Örneğin, JaCoCo raporları mutlak yollar kullanmaz ve Java uygulamaları için JaCoCo kapsamını yayımlarken, bu model ile benzerdir $(System.DefaultWorkingDirectory)/MyApp/src/main/java/ .
Bu giriş Ayrıca, testler bir Docker kapsayıcısında çalıştırıldığında gereklidir. Bu giriş konaktaki kaynak dosyaların mutlak yoluna işaret etmelidir.
Örneğin, $(System.DefaultWorkingDirectory)/MyApp/
reportDirectory
Rapor dizini
Seçim Kod kapsamı HTML rapor dizininin yolu. Rapor dizini daha sonra yapının yapıtı olarak görüntülenmek üzere yayımlanır. Değerde minimatch desenleri bulunabilir. Örnek: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura
additionalCodeCoverageFiles
Ek dosyalar
Seçim Yapının yapıtları olarak yayımlanacak ek kod kapsamı dosyalarını belirten dosya yolu stili. Değerde minimatch desenleri bulunabilir. Örnek: $(System.DefaultWorkingDirectory)/**/*.exec
failIfCoverageEmpty
Kod kapsamı sonuçları eksikse başarısız olur
Seçim Kod kapsamı yayımlanacak herhangi bir sonuç üretmediğinde görev başarısız olur.

Docker

Docker kullanan uygulamalar için, derleme ve testler kapsayıcı içinde çalışabilir ve bu da kapsayıcı içinde kod kapsamı sonuçları oluşur. Sonuçları işlem hattına yayımlamak için, sonuçta elde edilen yapıtlar kod kapsamı sonuçları Yayımla görevi için kullanılabilir hale gelmelidir. Başvuru için, DockerIçin bir Docker dosyası ile derleme, test ve yayımlama sonuçları bölümünde test sonuçlarını yayımlamaya benzer bir örnek görebilirsiniz.

Sonuçları görüntüleme

Kod kapsamı sonuçlarını ardışık düzende görüntülemek için bkz. kod kapsamı sonuçlarını inceleme

Açık kaynak

Bu görev GitHubaçık kaynağıdır. Geribildirim ve katılımlar hoş geldiniz.

SSS

Görev için giriş olarak birden çok dosya sağlandığında veya birden çok görev ardışık düzende kullanılıyorsa, kod kapsamı verileri birleştirildi mi?

Mevcut olduğunda, bu görev tarafından sunulan kod kapsamı raporlama işlevi sınırlıdır ve kapsam verilerini birleştirmez. Göreve girdi olarak birden çok dosya sağlarsanız, yalnızca ilk eşleşme kabul edilir. İşlem hattında birden çok yayımlama kod kapsamı görevi kullanıyorsanız, Özet ve rapor son görev için gösterilir. Daha önce karşıya yüklenen veriler yok sayılır.

Yardım ve destek

Bilinen sorunlar

Kod kapsamı sonuçlarını yayımla görevi, ana index.html dosyasından bağlantılı BIR dizi HTML dosyası olan HTML raporunu oluşturur ve yayımlar. Kod kapsamı sekmesi kod kapsamı raporunu göstermediğinde, index.html dosyanın boyutunun 7 MB 'a yakın veya daha büyük olup olmadığını kontrol edin. Dosyanın boyutunu denetlemek için aşağıdaki adımları izleyin. Daha sonra, dosya boyutu 7 MB 'a yakın veya daha büyük olursa, kapsam raporunu görüntülemek için aşağıdaki geçici çözümü kullanabilirsiniz:

  1. Derleme Özeti sekmesini seçin ve ardından yayımlanan bağlantıyı seçin:

    Özet bölmesinde yayınlanan bağlantıyı gösteren ekran görüntüsü.

  2. Kod kapsamı Report_ * yapıtı ' nin yanında yapıtları indir' i seçin:

    Artifacts altındaki kod kapsamı raporu için yapıt Indirme bağlantısını gösteren ekran görüntüsü.

  3. Kod kapsamı raporu indirildiğinde .zip dosyasını ayıklayın.

  4. Kod kapsamı raporunda, dosya boyutunun burada açıklanan soruna neden olup olmadığını belirlemede yardımcı olması için index.html boyutunu denetleyin.

  5. Kod kapsamı raporunu görüntülemek için index.html bir tarayıcıda açın.