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]
@@ -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/],
+ }
],
},