From 91fb28fa0a9a5089ff3134f3523f7a18d4f80f96 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Fri, 1 Dec 2023 19:59:14 +0100 Subject: [PATCH] chore(web): Add option to create test coverage report This adds a `coverage` parameter to `web/build.sh` that will create a coverage report in HTML format in `web/build/coverage/index.html`. --- web/.c8rc.json | 13 +++++++++++++ web/build.sh | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 web/.c8rc.json diff --git a/web/.c8rc.json b/web/.c8rc.json new file mode 100644 index 0000000000..f308b48487 --- /dev/null +++ b/web/.c8rc.json @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "clean": true, + "exclude-after-remap": true, + "extension": [".ts", ".js"], + "reporter": ["text", "text-summary"], + "reports-dir": "build/coverage", + "src": [ + "**/src/", + "../common/**/src" + ] +} diff --git a/web/build.sh b/web/build.sh index 51df8a346d..b0ee259510 100755 --- a/web/build.sh +++ b/web/build.sh @@ -21,6 +21,7 @@ builder_describe "Builds engine modules for Keyman Engine for Web (KMW)." \ "configure" \ "build" \ "test" \ + "coverage Create an HTML page with code coverage" \ ":app/browser The form of Keyman Engine for Web for use on websites" \ ":app/webview A puppetable version of KMW designed for use in a host app's WebView" \ ":app/ui Builds KMW's desktop form-factor keyboard-selection UI modules" \ @@ -113,3 +114,15 @@ if builder_start_action test; then builder_finish_action success test fi + +coverage_action() { + builder_echo "Creating coverage report..." + pushd .. > /dev/null + mkdir -p web/build/coverage/tmp + find . -type f -name coverage-\*.json -print0 | xargs -0 cp -t web/build/coverage/tmp + c8 report --config web/.c8rc.json ---reporter html --clean=false --reports-dir=web/build/coverage + rm -rf web/build/coverage/tmp + popd > /dev/null || return +} + +builder_run_action coverage coverage_action