Skip to content

Visualize unit test code coverage easily for free in Visual Studio Community Edition (and other editions too)

License

Notifications You must be signed in to change notification settings

milannaughty/FineCodeCoverage

 
 

Repository files navigation

Fine Code Coverage

Build status

Download this extension from the Visual Studio Market Place or get the CI build.


Highlights unit test code coverage

Run a(some) unit test(s) and ...

Get highlights on the code being tested

Code Being Tested

Get highlights on the code doing the testing

Code Doing The Testing

See Coverage View

Coverage View

See Summary View

Summary View

See Risk Hotspots View

Risk Hotspots View

Global (Shared) options

Global Options

Local (Test Project) options (override globals in your csproj/vbproj : OPTIONAL)

<PropertyGroup Label="FineCodeCoverage">
  <Enabled>
	True
  </Enabled>
  <Exclude>
	[ThirdParty.*]*
	[FourthParty]*
  </Exclude>
  <Include>
	[*]*
  </Include>
  <ExcludeByFile>
	**/Migrations/*
	**/Hacks/*.cs
  </ExcludeByFile>
  <ExcludeByAttribute>
	MyCustomExcludeFromCodeCoverage
  </ExcludeByAttribute>
  <IncludeTestAssembly>
	True
  </IncludeTestAssembly>
</PropertyGroup>

Exclude Referenced Project in referenced project ( csproj/vbproj : OPTIONAL )

<PropertyGroup>
	<FCCExcludeFromCodeCoverage/>
</PropertyGroup>			

Options

Enabled                 Specifies whether or not coverage output is enabled
RunInParallel           By default tests run and then coverage is performed.  Set to true to run coverage immediately
RunWhenTestsFail        By default coverage runs when tests fail.  Set to false to prevent this.  **Cannot be used in conjunction with RunInParallel**
RunWhenTestsExceed      Specify a value to only run coverage based upon the number of executing tests. **Cannot be used in conjunction with RunInParallel**
Exclude                 Filter expressions to exclude specific modules and types (multiple values)
Include                 Filter expressions to include specific modules and types (multiple values)
ExcludeByFile           Glob patterns specifying source files to exclude e.g. **/Migrations/* (multiple values)
ExcludeByAttribute      Attributes to exclude from code coverage (multiple values)
IncludeTestAssembly     Specifies whether to report code coverage of the test assembly

Both 'Exclude' and 'Include' options can be used together but 'Exclude' takes precedence.

You can ignore a method or an entire class from code coverage by creating and applying the [ExcludeFromCodeCoverage] attribute present in the System.Diagnostics.CodeAnalysis namespace.
You can also ignore additional attributes by adding to the 'ExcludeByAttributes' list (short name or full name supported) e.g. :
[GeneratedCode] => Present in System.CodeDom.Compiler namespace
[MyCustomExcludeFromCodeCoverage] => Any custom attribute that you may define

Filter Expressions

Wildcards
* => matches zero or more characters
		
Examples
[*]* => All types in all assemblies (nothing is instrumented)
[coverlet.*]Coverlet.Core.Coverage => The Coverage class in the Coverlet.Core namespace belonging to any assembly that matches coverlet.* (e.g coverlet.core)
[*]Coverlet.Core.Instrumentation.* => All types belonging to Coverlet.Core.Instrumentation namespace in any assembly
[coverlet.*.tests]* => All types in any assembly starting with coverlet. and ending with .tests

Both 'Exclude' and 'Include' options can be used together but 'Exclude' takes precedence.

Contribute

Check out the contribution guidelines if you want to contribute to this project.

For cloning and building this project yourself, make sure to install the Extensibility Tools 2015 extension for Visual Studio which enables some features used by this project.

License

Apache 2.0

Credits

Coverlet

OpenCover

ReportGenerator

Please support the project

Provider Type Link
Paypal Once
Librepay Recurring Donate using Liberapay

About

Visualize unit test code coverage easily for free in Visual Studio Community Edition (and other editions too)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%