Configuring code coverage report for Karma on TeamCity
Asked Answered
C

3

21

We are setting up TeamCity to run our jasmine tests using node and karma.

The tests run fine and results are reported under the "Tests" tab in TeamCity.

However we would like to report code coverage in TeamCity (and even set Build Failure Conditions on the level).

I have installed the karma-coverage module

npm install karma-coverage --save-dev

And tried to configure it in karma.conf.js by adding

preprocessors: {
 'myProject/Scripts/app/**/*.js': 'coverage'
},

reporters: ['progress', 'coverage'],

When karma is run, no errors are reported, and lots of files are created below the folder coverage, including a very nicely formatted code coverage report in index.html

But nothing new shows up in TeamCity. No "Code Coverage" tab.

How do I configure karma to produce reports that show up in TeamCity?

Perhaps I can use set coverageReporter to something appropriate, but what? This setting makes no difference:

coverageReporter: {
    type : 'html',
    dir : 'coverage/'
},

Bonus question: how do I set Build Failure Conditions on the karma reported code coverage?

Cider answered 9/10, 2013 at 8:24 Comment(0)
B
29

The easiest way to get TeamCity to recognize your coverage report is to output a build artifact that contains that nice html coverage report.

Edit the configuration settings for your build and under Artifact Paths add something like:

coverage/** => coverage.zip

TeamCity will recognize the coverage.zip artifact if it finds the index.html file in the root and will add a Code Coverage tab to each build.

Source: https://confluence.jetbrains.com/pages/viewpage.action?pageId=74847395#HowTo...-ImportcoverageresultsinTeamCity (Teamcity version 9.x)

Brahms answered 29/10, 2013 at 8:48 Comment(2)
I'm running TeamCity Professional 10.0.4 (build 42538) and the coverage.zip file was not automatically detected by TeamCity. As per @ekimpl, I had to manually create a new build report tab in the project settings with Start Page = coverage.zip!index.htmlHumoral
Thank you for this answer, this is what I was looking for.Limann
A
9

In my case the report was successfully generated into coverage.zip, but the code coverage tab wasn't visible in build report.

I had to manually add the report tab in Project Settings and provide a full path to the index.html file

enter image description here

Athalla answered 26/9, 2016 at 19:28 Comment(0)
S
1

Don't know, if the sequence is important, and shouldn't you use [] brackets at preprocessors entries?

Try the following:

reporters: ['progress', 'coverage'],

preprocessors: {
 'myProject/Scripts/app/**/*.js': ['coverage']
},
Siliceous answered 26/11, 2013 at 15:46 Comment(1)
Since the files are generated, this is probably not the issue.Papal

© 2022 - 2024 — McMap. All rights reserved.