diff --git a/.gitignore b/.gitignore index e6143b4db7..8a7c8baf67 100644 --- a/.gitignore +++ b/.gitignore @@ -58,5 +58,8 @@ yarn.lock # Documents My Document.docx -# Temporary folder -tmp \ No newline at end of file +# Temporary folder +tmp + +# nyc +.nyc_output diff --git a/.nycrc b/.nycrc new file mode 100644 index 0000000000..7c878bae51 --- /dev/null +++ b/.nycrc @@ -0,0 +1,25 @@ +{ + "check-coverage": true, + "lines": 84.56, + "functions": 77.50, + "branches": 71.40, + "statements": 84.30, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "src/**/*.spec.ts" + ], + "reporter": [ + "lcov", + "text", + "json" + ], + "extension": [ + ".ts" + ], + "cache": true, + "all": true, + "instrument": false, + "sourceMap": true +} diff --git a/.travis.yml b/.travis.yml index e50920c6db..e84682f2da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ install: - npm install -g codecov script: - npm run lint - - npm test + - npm run test.coverage - npm run style - npm run build - npm run ts-node -- ./demo/demo1.ts diff --git a/README.md b/README.md index f387c41a14..f9120883e0 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ [![Known Vulnerabilities][snky-image]][snky-url] [![Chat on Gitter][gitter-image]][gitter-url] [![PRs Welcome][pr-image]][pr-url] +[![codecov][codecov-image]][codecov-url]

drawing @@ -81,3 +82,5 @@ Made with 💖 [gitter-url]: https://gitter.im/docx-lib/Lobby [pr-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg [pr-url]: http://makeapullrequest.com +[codecov-image]: https://codecov.io/gh/dolanmiu/docx/branch/master/graph/badge.svg +[codecov-url]: https://codecov.io/gh/dolanmiu/docx diff --git a/package.json b/package.json index 802c2bfb62..32fdc7a467 100644 --- a/package.json +++ b/package.json @@ -6,17 +6,17 @@ "scripts": { "pretest": "rimraf ./build", "test": "mocha-webpack \"src/**/*.ts\"", - "test-watch": "mocha-webpack \"src/**/*.ts\" --watch", + "test.coverage": "nyc npm test", + "test.watch": "npm test -- --watch", "prepublishOnly": "npm run build", "lint": "tslint --project .", "build": "npm run webpack && npm run fix-types", "tsc": "rimraf ./build && tsc -p .", "webpack": "rimraf ./build && webpack", - "build.web": "webpack --config webpack.web.config.js", "demo": "npm run build && npm run ts-node ./demo", "typedoc": "typedoc src/index.ts", "style": "prettier -l \"src/**/*.ts\"", - "style.fix": "prettier \"src/**/*.ts\" --write", + "style.fix": "npm run style -- --write", "fix-types": "node types-absolute-fixer.js", "ts-node": "ts-node" }, @@ -67,9 +67,11 @@ "awesome-typescript-loader": "^3.4.1", "chai": "^3.5.0", "glob": "^7.1.2", + "istanbul-instrumenter-loader": "^3.0.1", "jszip": "^3.1.5", "mocha": "^5.2.0", "mocha-webpack": "^1.0.1", + "nyc": "^13.1.0", "pre-commit": "^1.2.2", "prettier": "^1.12.1", "prompt": "^1.0.0", diff --git a/webpack.config.js b/webpack.config.js index 01ecff1540..40ec0b0d23 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -20,6 +20,14 @@ module.exports = { test: /\.ts$/, loaders: ["awesome-typescript-loader"], }, + { + // For coverage testing + test: /\.(ts)/, + include: path.resolve("src"), + loader: "istanbul-instrumenter-loader", + enforce: "post", + exclude: [/node_modules/], + } ], },