diff --git a/.travis.yml b/.travis.yml index 99551b43..3a1fe631 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,3 +85,4 @@ script: - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then yarn test; fi - yarn build-e2e - yarn test-e2e + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then yarn coveralls; fi diff --git a/README.md b/README.md index 9621b9f7..5394231c 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![Dependency Status][david_img]][david_site] [![DevDependency Status][david_img_dev]][david_site_dev] [![Github Tag][github-tag-image]][github-tag-url] +[![Coverage Status][coveralls-image]][coveralls-url] Console Workbench 可以界面化管理多个命令行任务,这对当前多包集成的工作有一定用处,欢迎试用。 @@ -45,3 +46,5 @@ MIT [david_site]: https://david-dm.org/easyops-cn/console-workbench [david_img_dev]: https://david-dm.org/easyops-cn/console-workbench/dev-status.svg [david_site_dev]: https://david-dm.org/easyops-cn/console-workbench?type=dev +[coveralls-image]: https://coveralls.io/repos/github/easyops-cn/console-workbench/badge.svg?branch=master +[coveralls-url]: https://coveralls.io/github/easyops-cn/console-workbench?branch=master diff --git a/package.json b/package.json index 9fc1df64..7e5c3f1e 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "test-all": "yarn lint && yarn build && yarn test && yarn build-e2e && yarn test-e2e", "test-e2e": "node -r @babel/register ./internals/scripts/CheckBuiltsExist.js && cross-env NODE_ENV=test testcafe electron:./ ./test/e2e/HomePage.e2e.js", "test-e2e-live": "node -r @babel/register ./internals/scripts/CheckBuiltsExist.js && cross-env NODE_ENV=test testcafe-live electron:./ ./test/e2e/HomePage.e2e.js", - "test-watch": "yarn test --watch" + "test-watch": "yarn test --watch", + "coveralls": "cat ./coverage/lcov.info | coveralls" }, "lint-staged": { "*.{js,jsx}": [ @@ -143,6 +144,11 @@ }, "setupFiles": [ "./internals/scripts/CheckBuiltsExist.js" + ], + "collectCoverage": true, + "collectCoverageFrom": [ + "app/actions/*.js", + "app/reducers/*.js" ] }, "devDependencies": { @@ -178,6 +184,7 @@ "chalk": "2.4.1", "concurrently": "4.1.0", "connected-react-router": "5.0.1", + "coveralls": "^3.0.2", "cross-env": "5.2.0", "cross-spawn": "6.0.5", "css-loader": "1.0.1", diff --git a/yarn.lock b/yarn.lock index 251fa182..9663973a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3774,6 +3774,18 @@ cosmiconfig@^5.0.6: js-yaml "^3.9.0" parse-json "^4.0.0" +coveralls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.2.tgz#f5a0bcd90ca4e64e088b710fa8dda640aea4884f" + integrity sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw== + dependencies: + growl "~> 1.10.0" + js-yaml "^3.11.0" + lcov-parse "^0.0.10" + log-driver "^1.2.7" + minimist "^1.2.0" + request "^2.85.0" + crc32-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4" @@ -6286,6 +6298,11 @@ graphlib@^2.1.5: dependencies: lodash "^4.11.1" +"growl@~> 1.10.0": + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + growly@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -7838,7 +7855,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0: +js-yaml@^3.11.0, js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== @@ -8074,6 +8091,11 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +lcov-parse@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" + integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM= + left-pad@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" @@ -8309,6 +8331,11 @@ lodash@4.17.10: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +log-driver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -11127,7 +11154,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@^2.45.0, request@^2.83.0, request@^2.87.0, request@^2.88.0: +request@^2.45.0, request@^2.83.0, request@^2.85.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==