Do you have a lot of code, but you’re not sure how much of it is covered by unit tests?
You probably care about developing high-quality code. But chances are you don’t have the budget for a large team of testers to perform manual tests all the time.
Well, in that case, you need a code coverage tool. Code coverage tools allow you to measure how much tested and untested code you have in your codebase.
In this post, you will find out what are the best code coverage tools for C# to use in 2023 and beyond:
- dotCover
- NCover
- OpenCover
- NCrunch
- NDepend
You can add these testing tools to your workflow to assist you in making sure your development is up to the desired standard.
What is Code Coverage?
Code coverage is a vital metric that can help developers determine the extent to which your code is being executed while running automated tests.
Code coverage tools evaluate your code and return coverage metrics to ensure your code is continuously tested as ideally as possible. Of course, if the number is low, you can write additional tests. But you don’t have to strive to achieve 100% code coverage. It’s probably not worth it.
What are the best code coverage tools for C#?
Good code coverage tools offer the best way to analyze how tests cover a software application.
The following list highlights some of the top code coverage tools on the market today.
dotCover
https://www.jetbrains.com/dotcover/
dotCover is a .NET unit test runner and comprehensive code coverage tool. dotCover is part of the dotUltimate toolkit from JetBrains. It is a great tool to analyze .NET code coverage that integrates with Microsoft Visual Studio and JetBrains Rider.
dotCover supports Visual Studio 2010 – 2019 as well as JetBrains Rider 2018.2 or later. dotCover seamlessly calculates and reports statement-level code coverage in applications targeting the .NET framework, .NET Core, Mono, or Mono for Unity.
dotCover executes and debugs unit tests in Visual Studio or using the command-line utility. It also supports many other unit testing frameworks such as MSTest, NUnit, xUnit, and MSpec. You can also use it for manual test sessions where the data can easily showcase the source code that was successfully called and which parts were not reached. dotCover can detect and indicate potential risk areas with their unique Hot Spots view. It shows the most complex methods with the least coverage in an intuitive visual way.
dotCover also supports software testing during continuous integration. That can help indicate which unit tests are affected by your latest updates.
Jetbrains dotCover is available online as part of the dotUltimate toolkit with a 30-day free trial. The dotUltimate toolkit comes with other great .NET tools such as ReSharper, ReSharper C++, Rider, dotTrace, dotMemory, and dotCover. For individuals, it costs $14,90 per user per month or $149 for the year.
NCover
NCover is a powerful .NET code coverage tool for .NET applications. In addition, this brilliant tool boasts support for both statement and branch coverage.
NCover includes an integrated Visual Studio extension that can provide seamless code coverage within your workflow. This extension provides developers with everything they may need to write well-tested, bug-free code inside the Visual Studio IDE.
This Visual Studio extension provides developers with branch coverage visualization, source code highlighting, and coverage statistics in an intuitive and informative view. With this visualization, you can see the progress in real-time and allow you to simplify and optimize your code.
In addition, the extension comes pre-configured to collect coverage statistics while testing within the MSTest and NUnit test frameworks. This also comes with access to trend analysis tools and HTML reporting capabilities.
NCover is a code coverage tool that comes with widespread documentation and user support. It cements its place as one of the best C# code coverage tools around. The desktop license will cost you $658. Code Central license costs $2,298. Both Desktop and Code Central licenses come with a full year of technical support and upgrades.
OpenCover
https://www.nuget.org/packages/opencover
OpenCover is one of the most popular code coverage analysis tools for the .NET 2 framework and above. OpenCover cements its popularity by being open source, with over 3,000 downloads a day and 11,4 million total downloads worldwide.
OpenCover is one of the most powerful and easiest tools to use. It boasts support for both branch coverage and statement coverage support. Thus, you can use it primarily to gather coverage data of code during unit testing. In addition, OpenCover integrates perfectly with Visual Studio and works exclusively on Microsoft Windows.
The open source nature of OpenCover allows you to take more control over the tool to customize it for the specific needs of your workflow. However, OpenCover provides results in raw format. So it requires ReportGenerator to convert XML coverage results into various formats for you to understand easily.
As competitively priced as others may be, OpenCover is entirely free and available to download via NuGet. Thus, it is a perfect solution for the masses, students, and those who may be budget-conscious.
However, one big disadvantage of OpenCover is that its development has been stopped. If you navigate to the GitHub repository, you will notice that it has been archived by its author. The author decided to stop working on it. One alternative you can consider is altcover. altcover offers support for .NET, .NET Core, and Mono.
NCrunch
NCrunch prides itself as the ultimate live test coverage tool for the .NET framework. It gives developers the ability to see real-time test results and metrics while they code. This is a great timesaver and can be essential for professionals in this space. In addition, NCrunch works flawlessly with Visual Studio as a fully automated extension to track your code coverage as you type.
NCrunch is built for complex projects and can handle any real-world system you may be working on. NCrunch can track a wide variety of code coverage data, giving you the necessary feedback as fast as possible. It can also offload its build and test work to other computers for external processing. This can be incredibly useful if your workflow incorporates connected machines or the cloud.
NCrunch is also incredibly customizable. You have complete control over the CPU and memory consumption to align the tool to your specific needs.
NCrunch has been in development since 2009 and still receives regular updates with new features and improvements. You can download and test the NCrunch from its website, with licenses also available for purchase online. These licenses start from $159 for individual users. This includes one year of updates, with each year after that being charged at $79.
NDepend
NDepend is a powerful code coverage tool for Visual Studio, Azure DevOps, and other CI/CD platforms. NDepend can import data from other code coverage tools to allow you to do incredible things with it. You can even integrate this data with CQLinq to create custom rules and measurements.
NDepend runs perfectly on Windows, Mac, and Linux. In addition, NDepend is a static analyzer that can help you find hundreds or even thousands of issues that could be affecting your code.
NDepend uses a heat map to illustrate the coverage report visually. This can help developers to easily and quickly evaluate issues within their code. It also uses a variety of ways to visualize your code. NDepend prides itself on being a versatile yet speedy tool to add to any workflow you may have.
NDepend allows you to try out their tool with a 14-day trial that you can download from their website. After that, licenses for developers can be purchased online for $492 and come with a full-year subscription. Build machine licenses then start from $985,23 with discounts available for multi-year subscriptions or purchasing in volume.
Conclusion
In conclusion, I hope that this article gave you some insight into the benefits of each tool. If you’re looking to improve the code quality, you’ll want to look at the tools mentioned in this article.