TeamCity comes bundled with a number of tools capable of analyzing the quality of your code and reporting the obtained data. If you are using the tools which are currently not supported, TeamCity can be configured to run them and display their report results.
On this page:
Generally, the tools are configured as build runners and the results are displayed on the Build Results page as well as in the IDE for some of the tools.
You can also configure builds to fail based on the results and view the trends as statistics charts.
IntelliJ IDEA-powered Code Analysis Tools
These are available when you have an IntelliJ IDEA project (.idea directory or .ipr file) or a Maven project file (pom.xml) checked into your version control.
- Duplicates Finder (Java) provides a report on the discovered repetitive blocks of code.
Code Coverage tools
These are configured in the dedicated sections of the build runners.
- IntelliJ IDEA code coverage is supported for Ant, IntelliJ IDEA Project, Gradle or Maven build runners.
- EMMA coverage supports Ant build runner.
- JaCoCo coverage supports Ant, IntelliJ IDEA Project, Gradle and Maven build runners.
These are available if you use Visual Studio.
- Duplicates Finder (ReSharper) provides a report on the discovered repetitive blocks of C# and VB.NET code.
- FxCop uses Microsoft FxCop pre-installed on a build agent.
Reporting External Tools Results in TeamCity
If you need to use non-bundled tools, you can use TeamCity to import their results and display them in the TeamCity UI.
Supported Report Formats
Including HTML Reports
If your reporting tool is not supported by TeamCity directly, you can make it produce reports in the HTML format via a build script and add a build results report tab in TeamCity.
Importing Code Coverage Results
You can also import code coverage results in TeamCity.
Integration with External Tools
TeamCity can also be integrated with external build tools or tools generating some report/providing code metrics which are not yet supported by TeamCity. The integration tasks involved are collecting the data in the scope of a build and then reporting the data to TeamCity.