diff --git a/scripts/component_server/server.js b/scripts/component_server/server.js index 5423aac760..d2d15a8324 100644 --- a/scripts/component_server/server.js +++ b/scripts/component_server/server.js @@ -14,6 +14,8 @@ const defaultIstanbulSchema = require('@istanbuljs/schema'); const {getTestRunnerConfigSetting} = require('../test/test_config_helpers.js'); +const match = require('minimatch'); + const serverPort = parseInt(process.env.PORT, 10) || 8090; const target = argv.target || process.env.TARGET || 'Default'; @@ -200,6 +202,8 @@ async function checkFileExists(filePath) { const EXCLUDED_COVERAGE_FOLDERS = new Set(['third_party', 'ui/components/docs', 'Images']); +const USER_DEFINED_COVERAGE_FOLDERS = process.env['COVERAGE_FOLDERS']; + /** * @param {string} filePath * @returns {boolean} @@ -210,6 +214,10 @@ function isIncludedForCoverageComputation(filePath) { return false; } } + if (USER_DEFINED_COVERAGE_FOLDERS) { + const matchPattern = `/${USER_DEFINED_COVERAGE_FOLDERS}/**/*.{js,mjs}`; + return match(filePath, matchPattern); + } return true; } diff --git a/scripts/test/merge_coverage_reports.js b/scripts/test/merge_coverage_reports.js index 2199d5045f..b5b91eca10 100644 --- a/scripts/test/merge_coverage_reports.js +++ b/scripts/test/merge_coverage_reports.js @@ -17,3 +17,4 @@ const context = report.createContext({ defaultSummarizer: 'nested', }); reports.create('json-summary').execute(context); +reports.create('text', {file: 'coverage.txt'}).execute(context); diff --git a/test/.gitignore b/test/.gitignore index c4c63d3b68..7961859043 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1 +1,2 @@ -coverage-summary.json \ No newline at end of file +coverage-summary.json +coverage.txt \ No newline at end of file diff --git a/test/conductor/mocha_hooks.ts b/test/conductor/mocha_hooks.ts index d6e23fa56d..bc8b70b387 100644 --- a/test/conductor/mocha_hooks.ts +++ b/test/conductor/mocha_hooks.ts @@ -103,6 +103,7 @@ export const mochaHooks = { }); reports.create('html').execute(context); reports.create('json').execute(context); + reports.create('text', {file: 'coverage.txt'}).execute(context); reports.create('json-summary').execute(context); }, // In both modes, run before each test.