From 1caf90752d8e34ceece81d8a69f6ec79aabfa9c1 Mon Sep 17 00:00:00 2001 From: Tommy Markley Date: Tue, 19 Apr 2022 16:48:47 -0500 Subject: [PATCH] Adds code coverage reporting (#1478) * Renames build and test workflow to eliminate ambiguity. * Adds coverage generation for jest and mocha tests. * Expands coverage collection for jest tests. * Utilizes `lcov` reporter as well as text summary reporter. Resolves #1339 Prerequisite for #1035 Signed-off-by: Tommy Markley --- ...ck_workflow.yml => build_and_test_workflow.yml} | 14 ++++++++++---- package.json | 5 +++-- src/dev/jest/config.js | 13 ++----------- 3 files changed, 15 insertions(+), 17 deletions(-) rename .github/workflows/{pr_check_workflow.yml => build_and_test_workflow.yml} (88%) diff --git a/.github/workflows/pr_check_workflow.yml b/.github/workflows/build_and_test_workflow.yml similarity index 88% rename from .github/workflows/pr_check_workflow.yml rename to .github/workflows/build_and_test_workflow.yml index 9d9ed4a9dd28..58c342f27e31 100644 --- a/.github/workflows/pr_check_workflow.yml +++ b/.github/workflows/build_and_test_workflow.yml @@ -47,13 +47,19 @@ jobs: id: linter run: yarn lint - - name: Run unit tests + - name: Run unit tests with coverage id: unit-tests - run: yarn test:jest:ci + run: yarn test:jest:ci:coverage - - name: Run mocha tests + - name: Run mocha tests with coverage id: mocha-tests - run: yarn test:mocha + run: yarn test:mocha:coverage + + - name: Upload Code Coverage + id: upload-code-coverage + uses: codecov/codecov-action@v3 + with: + directory: ./target/opensearch-dashboards-coverage - name: Run integration tests id: integration-tests diff --git a/package.json b/package.json index 9f79d28bb239..4a744cd1a1a3 100644 --- a/package.json +++ b/package.json @@ -43,15 +43,16 @@ "test": "grunt test", "test:bwc": "./scripts/bwctest_osd.sh", "test:jest": "node scripts/jest", + "test:jest:coverage": "node scripts/jest --coverage", "test:jest:ci": "node scripts/jest --ci --colors --runInBand", + "test:jest:ci:coverage": "node scripts/jest --ci --colors --runInBand --coverage", "test:jest_integration": "node scripts/jest_integration", "test:jest_integration:ci": "node scripts/jest_integration --ci --colors --max-old-space-size=5120", "test:mocha": "node scripts/mocha", - "test:mocha:coverage": "grunt test:mochaCoverage", + "test:mocha:coverage": "yarn nyc --reporter=text-summary --reporter=lcov --report-dir=./target/opensearch-dashboards-coverage/mocha node scripts/mocha", "test:ftr": "node scripts/functional_tests", "test:ftr:server": "node scripts/functional_tests_server", "test:ftr:runner": "node scripts/functional_test_runner", - "test:coverage": "grunt test:coverage", "checkLicenses": "node scripts/check_licenses --dev", "build-platform": "node scripts/build", "build": "node scripts/build --all-platforms", diff --git a/src/dev/jest/config.js b/src/dev/jest/config.js index a587829966f4..bf477bc18de6 100644 --- a/src/dev/jest/config.js +++ b/src/dev/jest/config.js @@ -49,16 +49,6 @@ export default { '/src/test_utils', '/test/functional/services/remote', ], - collectCoverageFrom: [ - 'src/plugins/**/*.{ts,tsx}', - '!src/plugins/**/*.d.ts', - 'packages/osd-ui-framework/src/components/**/*.js', - '!packages/osd-ui-framework/src/components/index.js', - '!packages/osd-ui-framework/src/components/**/*/index.js', - 'packages/osd-ui-framework/src/services/**/*.js', - '!packages/osd-ui-framework/src/services/index.js', - '!packages/osd-ui-framework/src/services/**/*/index.js', - ], moduleNameMapper: { '@elastic/eui$': '/node_modules/@elastic/eui/test-env', '@elastic/eui/lib/(.*)?': '/node_modules/@elastic/eui/test-env/$1', @@ -82,7 +72,8 @@ export default { '/src/dev/jest/setup/react_testing_library.js', ], coverageDirectory: '/target/opensearch-dashboards-coverage/jest', - coverageReporters: ['html', 'text', 'text-summary'], + coveragePathIgnorePatterns: ['/node_modules/', '.*\\.d\\.ts'], + coverageReporters: ['lcov', 'text-summary'], moduleFileExtensions: ['js', 'mjs', 'json', 'ts', 'tsx', 'node'], modulePathIgnorePatterns: [ '__fixtures__/',