Integration of NCover into Team City for Tech Head Brothers
Starting the development of the new Tech Head Brothers in a remote multi developers environment I wanted to have some tooling to ease our work. For sure we have:
- A code repository: Subversion installed using VisualSVN server
- A continuous integration server: Team City
The continuous integration MSBuild script is doing the following steps:
- Compiling the code checked out by Team City
- Run NUnit tests
- Run NCover code coverage, that’s the new integration of today
- Precompile the website
- Package the website
- Deploy the website on IIS in a staging stage
In Team City I have two configuration settings for the Portal project:
- CI - Trunk - Unit Tests - Coverage - Deploy Staging: Run as Continuous integration with unit test, code coverage and deployment to iis
- Daily - Trunk - Duplicate Finder: Run daily and find duplicates in our code
Now for each build I can look at those information!
I can see that all my 35 tests passed, the changes made, the log of the build, Artifacts that I defined (more in a minute) and finally a new tab Code Coverage Summary.
The unit tests are ok for a start but needs some more work as we can see! But ins’t that cool to get the output directly in Team City! I love it.
And finally the artifacts tab
On this tab I get the output that is shown on the tab Code Coverage Summary as a file that I can download; CoverageSummary.html generated by MSBuild script using NCover, I also get the folder Coverage on which I can click on the index.html file to get a full report of NCover as you can see:
To get access to those Artifacts I needed to define in my settings the following:
And also modify the Team City server main-config.xml as described here with the following entries:
To integrate NCover into my Continuous Build process made with MSBuild script I used the documentation on that page.
Update: First take care that in the main-config there are already some report-tab configuration, and the name msut be unique. If the name is not unique then the first in the list will be taken. So I removed the predefined report-tab and modified the one from my last post to this: