# Test Coverage Tools
Teamscale can process a wide range of test-coverage formats, as produced by dozens of different third-party tools.
As of this writing, Teamscale supports the following test-coverage formats or tools:
- BullseyeCoverage (opens new window) (C/C++)
- Clover (opens new window) (Java, Groovy)
- Cobertura (opens new window) (Java)
- coverage.py (opens new window) (Python)
- dotCover (opens new window) (C#)
- JaCoCo (opens new window) (Java)
- gcov (opens new window) (C/C++)
- Go coverage (opens new window) (Go)
- lcov (JavaScript, C/C++)
- LLVM coverage (opens new window) (Ada, C/C++, Delphi, Fortran, Kotlin, Objective-C, Swift)
- MSTest (C#)
- SAP SCOV (ABAP)
- Testwell CTC++ (opens new window) (C/C++)
- Testwise Coverage (Java)
- Visual Studio Test Coverage (C/C++, C#)
- XCode/xccov Coverage (Swift)
- XR.Baboon (opens new window) (C#)
- Oracle HPROF (opens new window) (PL/SQL)
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, ...) |
Teamscale JavaScript Profiler | Manual and automated end-to-end tests | Direct upload to Teamscale, statement-level coverage |
# 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. | - |