I just upgraded a bunch of projects to VS2015/C#6.
Now MSTest's Code Coverage analysis is reporting that some auto properties aren't covered by unit tests. This wasn't the case in Visual Studio 2013, and I suspect it may be something to do with the new autoproperty features in C#6.
Dealing with all the false-positives this generates rather defeats the purpose of the Code Coverage tool as it makes it practically impossible to identify actual code lacking test coverage. We don't want to write unit tests for all our DTOs, and I'd really rather not have to go through the project annotating every single auto-property with ExcludeFromCodeCoverage
.
I've created a working MCVE at https://github.com/iaingalloway/VisualStudioCodeCoverageIssue
- Open
VisualStudio2013.sln
in Visual Studio 2013 Premium or Ultimate. - Click Test -> Analyze Code Coverage -> All Tests.
- Observe that the "Code Coverage Results" window reports 0 Blocks "Not Covered".
- Open
VisualStudio2015.sln
in Visual Studio 2015 Enterprise. - Click Test -> Analyze Code Coverage -> All Tests.
- Observe that the "Code Coverage Results" window reports 1 Block "Not Covered" (the getter for ExampleDto.Value)
Is it possible to configure the built-in Code Coverage tool in Visual Studio 2015 to ignore auto-properties like Visual Studio 2013 does?
[ExcludeFromCodeCoverage]
. You can monitor the progress of the ticket at:- connect.microsoft.com/VisualStudio/Feedback/Details/1742106 – Wayne Birch[Exclude...]
attribute, but immediately follow it with a// reason why each can be excluded
. – StingyJack