So I’ve built an (almost MVP) code coverage publisher for coveralls.io from C# code, using opencover coverage results. Checkout the github repo and nuget packages if you want to use it. I’m even dogfooding it on appveyor as part of my psake build tasks.

So how do you use it? Well luckily I used docopts.net to give you a bit of a command line experience while you use it, but the gist is this:

csmacnz.Coveralls.exe --opencover -i opencovertests.xml --repoToken "abcdefghijklmnopqrstuvwxyz" --commitId $env:APPVEYOR_REPO_COMMIT --commitBranch $env:APPVEYOR_REPO_BRANCH --commitAuthor $env:APPVEYOR_REPO_COMMIT_AUTHOR --commitEmail $env:APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL --commitMessage $env:APPVEYOR_REPO_COMMIT_MESSAGE --jobId $env:APPVEYOR_JOB_ID

This will locate the xml file opencovertests.xml as a result from running opencover on your c# project, and publish it to your coveralls project based on the repoToken “abcdefghijklmnopqrstuvwxyz” (using your repo token found on your coveralls.io project page) along with the git commit and branch details pulled out of appveyor.

So what does this mean to you? How will you use it? Well you can replace the appveyor environment variables above with the actual values found in your build server, get your repo token from coveralls.io, and plus this in on top of your existing opencover coverage CI.

If you don’t currently have opencover hooked up, there are tutorials all over the place for your specific build server, I’ll leave you to figure out the best way to get this running.

Don’t use/want to use opencover? The next steps for me is to get other coverage reports working with coveralls.net so stay tuned, or go +1 some of my features listed in the repository issues.

For me, the next steps is to test this works on my other projects so that I will be in the same situation as anyone else who wants to use it.