From a1ee519058b61ba329a09301484a5a4556eec816 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 16 Apr 2018 09:27:33 -0700 Subject: [PATCH] test:coverage --- .gitignore | 4 ++++ .travis.yml | 2 +- package.json | 12 ++++++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f3d3cf6..f5b6c46 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,10 @@ node_modules/ npm-debug.log debug.log +# Code coverage +coverage.json +coverage/ + # Added by shenanigans-manager for maps testing Maps.test.ts diff --git a/.travis.yml b/.travis.yml index 8000c64..08a81ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ node_js: - "node" script: - npm run setup && npm run verify + npm run setup && npm run verify:coverage # Recommended workaround for https://github.com/travis-ci/travis-ci/issues/8836 sudo: required diff --git a/package.json b/package.json index 3bc0969..bbf102c 100644 --- a/package.json +++ b/package.json @@ -20,13 +20,14 @@ "chai": "^4.1.2", "concurrently": "^3.5.1", "glob": "^7.1.2", + "istanbul": "^0.4.5", "lolex": "^2.3.2", "mkdirp": "^0.5.1", "mocha": "^5.0.5", "mocha-headless-chrome": "^1.8.2", "requirejs": "^2.3.5", "run-for-every-file": "^1.1.0", - "shenanigans-manager": "^0.2.26", + "shenanigans-manager": "^0.2.28", "sinon": "^4.5.0", "sinon-chai": "^3.0.0", "tslint": "5.9.1", @@ -49,15 +50,21 @@ "docs": "npm run docs:typedoc", "docs:typedoc": "typedoc src/ --exclude **/*.d.ts --ignoreCompilerErrors --out docs/generated", "init": "npm install && npm run setup && npm run verify", - "setup": "npm run setup:copy && npm run setup:package && npm run setup:readme", + "setup": "npm run setup:dirs && npm run setup:copy && npm run setup:package && npm run setup:readme", "setup:copy": "npm run setup:copy:default", "setup:copy:default": "run-for-every-file --dot --src \"node_modules/shenanigans-manager/setup/default/\" --file \"**/*\" --run \"mustache package.json {{src-file}} {{file}}\" --dest \".\" --only-files", + "setup:dirs": "shenanigans-manager ensure-dirs-exist", "setup:package": "shenanigans-manager hydrate-package-json", "setup:readme": "shenanigans-manager hydrate-readme", "src": "npm run src:tsc && npm run src:tslint", "src:tsc": "tsc -p .", "src:tslint": "tslint -c tslint.json -p tsconfig.json -t stylish", "test": "npm run test:setup && npm run test:run", + "test:coverage": "npm run test:coverage:generate-html && npm run test:coverage:instrument && npm run test:coverage:run && npm run test:coverage:report", + "test:coverage:generate-html": "shenanigans-manager generate-test-html --source instrumented", + "test:coverage:instrument": "istanbul instrument src -o instrumented", + "test:coverage:report": "istanbul report html", + "test:coverage:run": "mocha-headless-chrome --coverage coverage.json --file test/index.instrumented.html", "test:run": "mocha-headless-chrome --file test/index.html", "test:setup": "npm run test:setup:dir && npm run test:setup:copy && npm run test:setup:html && npm run test:setup:tsc", "test:setup:copy": "npm run test:setup:copy:default", @@ -66,6 +73,7 @@ "test:setup:html": "shenanigans-manager generate-test-html", "test:setup:tsc": "tsc -p test", "verify": "npm run src && npm run test && npm run dist && npm run docs", + "verify:coverage": "npm run src && npm run test:setup && npm run test:coverage && npm run dist && npm run docs", "watch": "concurrently \"tsc -p . -w\" --raw \"chokidar src/**/*.test.t* --command \"\"npm run test:setup:html\"\" --silent\" --raw" }, "shenanigans": {