2
votes

We are currently using TFS 2015 for our CI builds. We use the Microsoft unit testing framework that ships with VS 2015 to create our unit tests and we run these as part of our TFS 2015 build process.

We'd like to extend our unit testing to include code coverage. We can't use the VS 2015 / TFS 2015 code coverage tools as these require an enterprise licence and we only have a professional licence (although we would consider upgrading if necessary).

We're looking for a code coverage tool that we can hook into our TFS 2015 build and that produces meaningful output (e.g. coverage reports). If possible it would be good if the same tool integrated into the VS 2015 IDE to give real-time coverage.

All recommendations and suggestions welcome.

2
Are you using XAML build or vNext?Eddie Chen - MSFT

2 Answers

1
votes

According to the Compare VS offerings site, only Visual Studio Enterprise has Code Coverage feature, so if you use TFS for your CI build, installing VS Enterprise on your build agent machine is required.

Otherwise, you may need to check other build server, like TeamCity.

1
votes

Given a test coverage tool for a MS language, "hooking into the build" is a matter of scripting the invocation of the test coverage tool, and adding it as extra step to the build process.

You didn't say which languages you wanted to cover, so I assume you want to go broad spectrum. In that case, Semantic Designs (my company) family of test coverage tools will probably serve you well.

In particular, this family specifically covers VisualStudio C, C++ and C#. There is one tool per language as the tool has to parse the source code to carry out the instrumentation process. All family members work the same way, and results can be shared across multiple languages to produce coverage reports for a multilingual target application.

Although not usually configured to produce coverage data in real time, you can achieve that effect easily by adding a few lines of custom code to each application, enabled only if test coverage is active using a preprocessor directive.