我已经开始依赖NPM脚本作为我测试过程的主要工具.
随着我编写更多NPM脚本,顺序和结构越来越难以一目了然.
这是我当前的脚本:
{ "scripts": { "clean": "rm -rf report/*", "report": "rm -rf report/; mkdir report", "tests:mocha": "mocha test/spec/", "all-tests:mocha": "npm run tests:mocha -- --recursive", "all-tests:json": "npm run all-tests:mocha -- --reporter json", "all-tests:jsonReport": "npm run all-tests:json > report/all-tests.json", "all-admin:mocha": "mocha test/spec/admin.production.io/", "all-admin-all:mocha": "npm run all-admin:mocha -- --recursive", "all-admin:json": "npm run all-admin:mocha -- --reporter json", "all-admin:jsonReport": "npm run all-admin:json > report/all-tests.json", "google:mocha": "mocha test/spec/googleTest.js", "google:spec": "npm run google:mocha -- --reporter spec --slow 0", "google:json": "npm run google:mocha -- --reporter json", "google:jsonReport": "npm run google:json > report/google-test.json", "usersAll:mocha": "mocha test/spec/admin.production.io/dashboard/users/*.js", "usersAll:spec": "npm run usersAll:mocha -- --reporter spec --slow 0", "usersAll:json": "npm run usersAll:mocha -- --reporter json", "usersAll:jsonReport": "npm run usersAll:jsonReport > report/admin-users-dashboard-all.json", "orgsAll:mocha": "mocha test/spec/admin.production.io/dashboard/organizations/*.js", "orgsAll:spec": "npm run orgsAll:mocha -- --reporter spec --slow 0", "orgsAll:json": "npm run orgsAll:mocha -- --reporter json", "orgsAll:jsonReport": "npm run orgsAll:json > report/admin-orgs-dashboard-all.json", "users-orgs:mocha": "npm run users:spec; npm run orgs:spec", "users-orgs-report": "npm run users:jsonReport; npm run orgs:jsonReport", "pos-users:mocha": "mocha test/spec/admin.production.io/dashboard/users/positiveUserTest.js", "pos-users:spec": "npm run pos-users:mocha -- --reporter spec --slow 0", "pos-users:json": "npm run pos-users:mocha -- --reporter json", "pos-users:jsonReport": "npm run pos-users:json > report/admin-users-dashboard-positive.json", "pos-orgs:mocha": "mocha test/spec/admin.production.io/dashboard/organizations/positiveOrgsTests.js", "pos-orgs:spec": "npm run pos-orgs:mocha -- --reporter spec --slow 0", "pos-orgs:json": "npm run pos-orgs:mocha -- --reporter json", "pos-orgs:jsonReport": "npm run pos-orgs:json > report/admin-users-dashboard-positive.json", "alice-la:mocha": "mocha test/spec/admin.local.us/dashboard/alice/*.js", "alice-la:jsonReport": "npm run alice-la:mocha -- --reporter json -- > report/local-admin-dashboard-alice-all-tests.json", "a2361p-l:mocha": "mocha test/spec/admin.local.us/dashboard/alice/2361-p.js", "a2361p-l:spec": "npm run a2361p-l:mocha -- --reporter spec --slow 0", "a2361p-l:json": "npm run a2361p-l:mocha -- --reporter json", "a2361p-l:jsonReport": "npm run a2361p-l:json > report/a2361p-l.json", "a2361pf-l:mocha": "mocha test/spec/admin.local.us/dashboard/alice/2361-pf.js", "a2361pf-l:spec": "npm run a2361pf-l:mocha -- --reporter spec --slow 0", "a2361pf-l:json": "npm run a2361pf-l:mocha -- --reporter json", "a2361pf-l:jsonReport": "npm run a2361pf-l:json > report/a2361pf-l.json", "alice-pa:mocha": "mocha test/spec/admin.production.io/dashboard/alice/*.js", "alice-pa:jsonReport": "npm run alice-pa:mocha -- --reporter json -- > report/production-admin-dashboard-alice-all-tests.json", "a2361p-p:mocha": "mocha test/spec/admin.production.io/dashboard/alice/2361-p.js", "a2361p-p:spec": "npm run a2361p-p:mocha -- --reporter spec --slow 0", "a2361p-p:json": "npm run a2361p-p:mocha -- --reporter json", "a2361p-p:jsonReport": "npm run a2361p-p:json > report/a2361p-p.json", "a2361pf-p:mocha": "mocha test/spec/admin.production.io/dashboard/alice/2361-pf.js", "a2361pf-p:spec": "npm run a2361pf-p:mocha -- --reporter spec --slow 0", "a2361pf-p:json": "npm run a2361pf-p:mocha -- --reporter json", "a2361pf-p:jsonReport": "npm run a2361pf-p:json > report/a2361pf-p.json", "a2361:all": "npm run clean; npm run a2361p-l:mocha; npm run a2361p-l:spec; npm run a2361p-l:json; npm run a2361p-l:jsonReport; npm run a2361pf-l:mocha; npm run a2361pf-l:spec; npm run a2361pf-l:json; npm run a2361pf-l:jsonReport; npm run a2361p-p:mocha; npm run a2361p-p:spec; npm run a2361p-p:json; npm run a2361p-p:jsonReport; npm run a2361pf-p:mocha; npm run a2361pf-p:spec; npm run a2361pf-p:json; npm run a2361pf-p:jsonReport", "test": "mocha" }
这仅适用于大约8次左右的测试.我打算编写脚本来将报告输出到junit格式,它已经开始看起来像眼睛疲劳.
如何构建我的npm脚本以使其更具可读性?