# Test Coverage Tools

Teamscale can process a wide range of test-coverage formats, as produced by dozens of different third-party tools.

# Coverage Formats Supported by Teamscale

The following test coverage formats or tools are currently supported by Teamscale:

Additional Tools & Formats

If your tool isn't supported yet, don't hesitate to contact us; we continuously add support for new formats.

# Which Coverage Tool To Use

The following lists coverage tools that we recommend you use to obtain code coverage for your tests. These are tools that we have used successfully together with our customers in the past. However, other tools may work as well.

Third-Party Tools

Please note that we are not the vendor of most of these tools and thus cannot directly support you in case you face problems with their setup. Please contact the appropriate vendor.

We will, however, of course help you to setup the upload of their coverage report files to Teamscale and to use Test Gap analysis in Teamscale.

# Java

Tool When to use Capabilities/Limitations
JaCoCo Build environment, any kind of automated test Plugins for Maven, Ant and Gradle
Teamscale JaCoCo Agent Manual tests Direct upload to Teamscale, can upload coverage in regular intervals

# C#

Tool When to use Capabilities/Limitations
TFS/Azure DevOps Code Coverage When running tests in TFS or Azure DevOps Easy setup from TFS/Azure DevOps, easy upload to Teamscale with the corresponding plugin
dotCover When running tests in TeamCity Easy setup from TeamCity
Microsoft CodeCoverage.exe When running tests outside the build system Runtime instrumentation, possibly has a performance impact, also part of Visual Studio installation
Teamscale .NET Profiler Manual tests, performance-critical applications Direct upload to Teamscale, only records method-level coverage, thus minimal performance impact

# JavaScript & TypeScript

Tool When to use Capabilities/Limitations
IstanbulJS Build environment, any kind of automated test Easy setup, plugins for all major JS build systems (WebPack, Angular CLI, grunt, gulp, ...)
JSCover Manual tests in real browsers Complex setup, but the only tool able to centrally profile code in the end users browser. Does not support minified JavaScript or source maps. Use --local-store --no-branch --no-function and make sure to exclude 3rd party libraries from the coverage analysis. File system mode is recommended

# C/C++

Tool When to use Capabilities/Limitations
gcov Linux & embedded Linux, gcc toolchain -
Microsoft CodeCoverage.exe Windows, MSVC toolchain Runtime instrumentation, possibly has a performance impact, also part of Visual Studio installation
Bullseye coverage Windows & Linux & embedded, performance-critcal code, release builds Instruments the source code before the compile, thus able to profile optimized binaries, small performance overhead, easy setup, commercial, 30 day trial

# SAP/ABAP

Tool When to use Capabilities/Limitations
Teamscale SAP/ABAP Connector Always Requires SCOV or SCOV Lite to be activated.
Activating UPL will also activate SCOV.
Activating SCMon is not sufficient, SCOV has to be enabled in addition.
According to SAP, both can be enabled at the same time without problems.

# Python

Tool When to use Capabilities/Limitations
coverage.py Works for any type of test, including manual tests and multi-process applications. -

# PL/SQL

Tool When to use Capabilities/Limitations
Oracle HPROF This is the only option for profiling PL/SQL code and integrated in every Oracle database. -