#Code Quality Portal
This web site is part of code quality solution to visualize the following metrics:
- Maintainablity index
- Cyclomatic complexity
- Lines of code
- Depth of inheritance
- Class coupling
- Code coverage with breakdown by system, repo or team and further drilldown by modules
- Code churn
- Branch diff feature to compare metrics of two source control branches on a given date
- Module lookup
Data is aggregated and can be drilled down through this hierarchy:
- Source control branch
- System
- Module (assembly)
- Namespace
- Type (class)
- Member
Module is associated with repo, can be in multiple systems and it is owned by a team.
Here is the overall picture of the solution components:
- Assembly that is being instrumented
- Microsoft Metrics Power Tool
- Xml file generated by the Power Tool
- Assembly with unit tests
- Nunit console runner
- OpenCover code coverage tool which runs Nunit
- Xml file generated by OpenCover
- Report Generator knows how to parse OpenCover input
- Summary xml produced by the Report Generator
- Code Metrics Loader utility that I wrote to merge metrics produced by the Power Tool with code coverage
- Code Churn Loader my utility to collect code churn from Github or Bitbucket hosted repos
- Database with two fact tables for metrics and code churn and shared date dimension
- This repo
##Technology stack
- EF Code First
- ASP.Net MVC
- Web API
- Angular JS
- Wijmo
There is demo data initializer and the site should run right out of the box as long as SQL Server 2012 Express LocalDB is installed.
We have been using this portal to track production code quality metrics since 2014.