cypress-io / cypress-io/code-coverage
Support collection of code coverage from multiple services
- Dominant language
- TypeScript
- Stars
- 445
- Forks
- 115
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
It is currently possible to fetch code coverage report from the browser (the frontend code) as well as backend.
However, you can configure only 1 endpoint and if your application is composed of multiple services, we need to be able to extract code coverage from them as well.
**Describe the solution you'd like**
I want to configure cypress in such a way that it will collect code coverage from multiple endpoints, and remove `expectBackendCoverageOnly` which i think is redundant for example:
```
codeCoverage: {
collectFrontendCoverage: true,
services: [
{
url: `${
process.env.cypress_baseUrl || 'http://localhost:9001'
}/__coverage__`,
remotePath: `/backend`,
localPath: `${process.cwd()}/backend`,
},
{
url: `http://localhost:9002/__coverage__`,
remotePath: `/app`,
localPath: `${process.cwd()}/service2`,
},
],
},
```
In order to provide backward compatability, still use the `url` property, and by default search for coverage from `window.originUrl/__coverage__`
`remotePath` and `localPath` are optional. We need this in case we are running our services on a remote machine / docker container and the paths are not synced with our local sources path.
**Describe alternatives you've considered**
You can basically create a service that doing the collection for you from all the other services, but its not a good approach.
Additionally, instead of `remotePath` and `localPath` you can create a middleware on your service that perform the mapping of the local source path, to what it should be in the docker host, but again it is not a good approach.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.