From 10c86e6f096c442e9d5e3a37322fa591a3bf53ee Mon Sep 17 00:00:00 2001 From: Ramon Blanquer Date: Tue, 15 Mar 2022 13:24:11 +0100 Subject: [PATCH 1/3] feat: add explicit check against codeCoverage.expectFrontendCoverageOnly before attempting to collect backend coverage --- support.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/support.js b/support.js index c99ceb23..3c806136 100644 --- a/support.js +++ b/support.js @@ -166,10 +166,11 @@ const registerHooks = () => { const baseUrl = Cypress.config('baseUrl') || cy.state('window').origin // @ts-ignore const runningEndToEndTests = baseUrl !== Cypress.config('proxyUrl') + const expectFrontendCoverageOnly = Cypress._.get(Cypress.env('codeCoverage'), 'expectFrontendCoverageOnly', false) const specType = Cypress._.get(Cypress.spec, 'specType', 'integration') const isIntegrationSpec = specType === 'integration' - if (runningEndToEndTests && isIntegrationSpec) { + if (!expectFrontendCoverageOnly && runningEndToEndTests && isIntegrationSpec) { // we can only request server-side code coverage // if we are running end-to-end tests, // otherwise where do we send the request? From 122a527a2b6851274f28f8205946fa568ef9fcc8 Mon Sep 17 00:00:00 2001 From: Ramon Blanquer Date: Tue, 15 Mar 2022 13:29:38 +0100 Subject: [PATCH 2/3] Run Prettier. --- support.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/support.js b/support.js index 3c806136..40c69dfc 100644 --- a/support.js +++ b/support.js @@ -166,11 +166,19 @@ const registerHooks = () => { const baseUrl = Cypress.config('baseUrl') || cy.state('window').origin // @ts-ignore const runningEndToEndTests = baseUrl !== Cypress.config('proxyUrl') - const expectFrontendCoverageOnly = Cypress._.get(Cypress.env('codeCoverage'), 'expectFrontendCoverageOnly', false) + const expectFrontendCoverageOnly = Cypress._.get( + Cypress.env('codeCoverage'), + 'expectFrontendCoverageOnly', + false + ) const specType = Cypress._.get(Cypress.spec, 'specType', 'integration') const isIntegrationSpec = specType === 'integration' - if (!expectFrontendCoverageOnly && runningEndToEndTests && isIntegrationSpec) { + if ( + !expectFrontendCoverageOnly && + runningEndToEndTests && + isIntegrationSpec + ) { // we can only request server-side code coverage // if we are running end-to-end tests, // otherwise where do we send the request? From 10c9d1e4a6e683dfa36c2b142591461c55a9612d Mon Sep 17 00:00:00 2001 From: AtofStryker Date: Tue, 25 Mar 2025 16:51:27 -0400 Subject: [PATCH 3/3] chore: add documentation on expectFrontendCoverageOnly --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 75f5ede6..acf44068 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,21 @@ After: ![Cypress knows to expect the backend code coverage only](./images/expect-backend.png) +### expectFrontendCoverageOnly + +If there is ONLY frontend code coverage, set `expectFrontendCoverageOnly: true` in the `cypress.json` file. Otherwise, Cypress complains that it cannot find the frontend code coverage. + +```json +{ + "env": { + "codeCoverage": { + "url": "http://localhost:3003/__coverage__", + "expectFrontendCoverageOnly": true + } + } +} +``` + ## Custom report folder You can specify a custom report folder by adding `nyc` object to the `package.json` file. For example, to save reports to `cypress-coverage` folder, use: