PublishCodeCoverageResults@1 – Publikování výsledků pokrytí kódu v1
Pomocí této úlohy můžete publikovat výsledky pokrytí kódu Cobertura nebo JaCoCo z sestavení.
Důležité
Tato úloha je zastaralá. Uživatelům se doporučuje přepnout na PublishCodeCoverageResults@2. Další informace najdete v tématu Nová verze úlohy Publikovat výsledky pokrytí kódu.
Pomocí této úlohy můžete publikovat výsledky pokrytí kódu Cobertura nebo JaCoCo z sestavení.
Syntax
# Publish code coverage results v1
# [DEPRECATION WARNING! Users are recommended to switch to version 2*.] Publish Cobertura or JaCoCo code coverage results from a build.
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: 'JaCoCo' # 'Cobertura' | 'JaCoCo'. Required. Code coverage tool. Default: JaCoCo.
summaryFileLocation: # string. Required. Summary file.
#pathToSources: # string. Path to Source files.
#reportDirectory: # string. Report directory.
#additionalCodeCoverageFiles: # string. Additional files.
#failIfCoverageEmpty: false # boolean. Fail when code coverage results are missing. Default: false.
# Publish code coverage results v1
# Publish Cobertura or JaCoCo code coverage results from a build.
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: 'JaCoCo' # 'Cobertura' | 'JaCoCo'. Required. Code coverage tool. Default: JaCoCo.
summaryFileLocation: # string. Required. Summary file.
#pathToSources: # string. Path to Source files.
#reportDirectory: # string. Report directory.
#additionalCodeCoverageFiles: # string. Additional files.
#failIfCoverageEmpty: false # boolean. Fail when code coverage results are missing. Default: false.
# Publish Code Coverage Results v1
# Publish Cobertura or JaCoCo code coverage results from a build.
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: 'JaCoCo' # 'Cobertura' | 'JaCoCo'. Required. Code coverage tool. Default: JaCoCo.
summaryFileLocation: # string. Required. Summary file.
#reportDirectory: # string. Report directory.
#additionalCodeCoverageFiles: # string. Additional files.
#failIfCoverageEmpty: false # boolean. Fail when code coverage results are missing. Default: false.
# YAML Syntax is not supported in TFS 2018.
# Use the classic designer to add and configure tasks.
# See the following Inputs section for details on the inputs that this task supports.
Vstupy
codeCoverageTool
- Nástroj pokrytí kódu
string
. Povinná hodnota. Povolené hodnoty: Cobertura
, JaCoCo
. Výchozí hodnota: JaCoCo
.
Určuje nástroj, který generuje výsledky pokrytí kódu.
summaryFileLocation
- Souhrnný soubor
string
. Povinná hodnota.
Určuje cestu souhrnného souboru obsahujícího statistiky pokrytí kódu, jako je například pokrytí řádku, metody a třídy. Několik souhrnných souborů se sloučí do jedné sestavy. Hodnota může obsahovat vzory minimatch. Příklad: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura/coverage.xml
.
pathToSources
- Cesta ke zdrojovým souborům
string
.
Zadání cesty ke zdrojovým souborům se vyžaduje, pokud sestavy XML pokrytí neobsahují absolutní cestu ke zdrojovým souborům. Například sestavy JaCoCo nepoužívají absolutní cesty, takže při publikování pokrytí JaCoCo pro aplikace v Javě se model podobá $(System.DefaultWorkingDirectory)/MyApp/src/main/java/
. Tento vstup by měl odkazovat na absolutní cestu ke zdrojovým souborům na hostiteli. Například, $(System.DefaultWorkingDirectory)/MyApp/
.
Tento vstup se dá použít, pokud se testy spouští v kontejneru Dockeru.
Více zdrojů lze přidat tak, že každou položku seznamu oddělíte znakem ;
, například pathToSources: $(System.DefaultWorkingDirectory)/path/to/first/source;$(System.DefaultWorkingDirectory)/path/to/second/source
.
reportDirectory
- Adresář sestav
string
.
Určuje cestu k adresáři sestav HTML pokrytí kódu. Adresář sestav se publikuje pro pozdější zobrazení jako artefakt sestavení. Hodnota může obsahovat vzory minimatch. Příklad: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura
.
additionalCodeCoverageFiles
- Další soubory
string
.
Určuje vzor cesty k souboru a zaznamenává všechny další soubory pokrytí kódu, které se mají publikovat jako artefakty sestavení. Hodnota může obsahovat vzory minimatch. Příklad: $(System.DefaultWorkingDirectory)/**/*.exec
.
failIfCoverageEmpty
- Selhání, když chybí výsledky pokrytí kódu
boolean
. Výchozí hodnota: false
.
Úloha selže, pokud pokrytí kódu nepřinášelo žádné výsledky pro publikování.
Možnosti ovládání úloh
Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.
Výstupní proměnné
Žádné
Poznámky
Důležité
Tato úloha je zastaralá. Uživatelům se doporučuje přepnout na PublishCodeCoverageResults@2. Další informace najdete v tématu Nová verze úlohy Publikovat výsledky pokrytí kódu.
Poznámka
Informace o nových funkcích ve verzi 2 úlohy Publikování výsledků pokrytí kódu a migraci z V1 na V2 najdete v tématu Nová verze úlohy Publikovat výsledky pokrytí kódu na blogu Azure DevOps .
Tuto úlohu použijte v kanálu sestavení k publikování výsledků pokrytí kódu vytvořených při spouštění testů do Azure Pipelines nebo TFS, abyste získali sestavy pokrytí. Úloha podporuje oblíbené formáty výsledků pokrytí, jako jsou Cobertura a JaCoCo.
Tato úloha je podporována pouze v kanálech sestavení, nikoli v kanálech vydaných verzí.
Úlohy, jako jsou Visual Studio Test, .NET Core, Ant, Maven, Gulp a Grunt , také poskytují možnost publikovat data pokrytí kódu do kanálu. Pokud tyto úlohy používáte, nepotřebujete v kanálu samostatnou úlohu Publikovat výsledky pokrytí kódu.
K vygenerování sestavy pokrytí kódu HTML potřebujete na agenta dotnet framework 2.0.0 nebo novější. Složka dotnet musí být v cestě prostředí. Pokud existuje více složek obsahujících dotnet, musí být ta s verzí 2.0.0 před všemi ostatními složkami v seznamu cest.
Výsledky pokrytí kódu pro JavaScript s istanbulem pomocí YAML
Pokud chcete publikovat výsledky pokrytí kódu pro JavaScript v Istanbulu pomocí YAML, přečtěte si téma Přizpůsobení JavaScriptu v části Ekosystémy v těchto tématech, kde najdete také příklady pro jiné jazyky.
Podívejte se na příklad publikování pokrytí kódu pomocí Cobertura.
Docker
U aplikací používajících Docker se sestavení a testy můžou spouštět uvnitř kontejneru a generovat výsledky pokrytí kódu v kontejneru. Aby bylo možné publikovat výsledky do kanálu, měly by být výsledné artefakty zpřístupněny pro úlohu Publikovat výsledky pokrytí kódu . Pro referenci můžete vidět podobný příklad publikování výsledků testů v části Sestavení, testování a publikování výsledků pomocí souboru Dockeru pro Docker.
Zobrazení výsledků
Pokud chcete zobrazit výsledky pokrytí kódu v kanálu, přečtěte si téma Kontrola výsledků pokrytí kódu.
Sloučí se data pokrytí kódu, když se jako vstup úkolu poskytne více souborů nebo se v kanálu použije více úkolů?
V současné době je funkce generování sestav pokrytí kódu, kterou tato úloha poskytuje, omezená a neslučuje data pokrytí. Pokud jako vstup úkolu zadáte více souborů, bude se brát v úvahu pouze první shoda. Pokud v kanálu použijete více úloh pokrytí kódu publikování, zobrazí se souhrn a sestava pro poslední úkol. Všechna dříve nahraná data se ignorují.
Známé problémy
Úloha publikování výsledků pokrytí kódu vygeneruje a publikuje sestavu HTML, což je sada souborů HTML, které jsou propojeny z hlavního index.html souboru. Pokud se na kartě pokrytí kódu nezobrazí sestava pokrytí kódu, zkontrolujte, jestli se velikost souboruindex.html blíží nebo je větší než 7 MB. Provedením následujících kroků zkontrolujte velikost souboru. Pokud se pak velikost souboru blíží nebo je větší než 7 MB, můžete k zobrazení sestavy pokrytí použít následující alternativní řešení.
Vyberte kartu Souhrn sestavení a pak vyberte publikovaný odkaz:
Vedle artefaktu Pokrytí kódu Report_* vyberte Stáhnout artefakty:
Po stažení sestavy pokrytí kódu extrahujte soubor .zip.
V sestavě pokrytí kódu zkontrolujte velikost index.html , abyste zjistili, jestli velikost souboru způsobuje zde popsaný problém.
Otevřete index.html v prohlížeči a zobrazte sestavu pokrytí kódu.
Požadavky
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasické sestavení |
Spustí se | Agent, DeploymentGroup |
Požadavky | Žádné |
Možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
Omezení příkazů | Všechny |
Nastavitelné proměnné | Tato úloha má oprávnění k nastavení následujících proměnných: Nastavení proměnných je zakázáno. |
Verze agenta | 2.182.1 nebo vyšší |
Kategorie úloh | Test |
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasické sestavení |
Spustí se | Agent, DeploymentGroup |
Požadavky | Žádné |
Možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
Omezení příkazů | Všechny |
Nastavitelné proměnné | Všechny |
Verze agenta | 2.102.0 nebo vyšší |
Kategorie úloh | Test |