# Uploading Test Coverage to Teamscale
In order to use the Test Gap analysis, you’ll need to upload test coverage to Teamscale. There are multiple options on how to upload the test coverage depending on the use case. Under the hood they all use the same set of REST APIs.
Our list of recommended test coverage tools is a good starting point for selecting a tool that best fits your particular needs.
# Manual upload
For most coverage profilers (e.g. JaCoCo, gcov, dotCover, IstanbulJS or coverage.py), the resulting coverage files can simply be uploaded via Teamscale's Web UI. We recommend doing so to inspect the results before automating the upload. See Manual Report Upload for how to do this.
# Uploading from Scripts and CI pipelines
In a production setup you will want to automatically upload the coverage from within your CI pipeline.
For most use-cases the easiest solution is to simply upload the coverage reports via Teamscale's REST API with a simple
Please refer to the article on external uploads for details as to how to do this.
# Uploading from Jenkins
For Jenkins users we also have a plugin that provides an "after build step" to do the upload. For detailed instructions please see the Jenkins plugin page.