2017-09-29 79 views
0

我目前正在使用Mocha,Chai和WebdriverIO的測試框架。就目前而言,只要我保存對spec文件的更改,Selenium Standalone Server就會運行完整的測試套件。我想禁用它,只有在終端輸入命令時才運行測試套件。此命令目前可用,但由於測試也在保存時自動運行,有時會同時運行多個相同的測試,從而導致錯誤。如何在每次保存更改時停止運行Mocha/Chai/WebdriverIO測試Selenium Standalone服務器測試

如何從自動運行測試中停止Selenium Standalone Server?

UPDATE:作爲一個評論者的要求,這裏是我的的package.json

{ 
    "name": "react-slingshot", 
    "version": "5.0.0", 
    "description": "Starter kit for creating apps with React and Redux", 
    "main": "index.js", 
    "engines": { 
    "npm": ">=3" 
    }, 
    "scripts": { 
    "preinstall": "node tools/nodeVersionCheck.js", 
    "setup": "node tools/setup/setupMessage.js && npm install && node tools/setup/setup.js", 
    "start-message": "babel-node tools/startMessage.js", 
    "prestart": "npm-run-all --parallel start-message remove-dist", 
    "start": "npm-run-all --parallel test:watch open:src lint:watch", 
    "open:src": "babel-node tools/srcServer.js", 
    "open:dist": "babel-node tools/distServer.js", 
    "lint": "esw webpack.config.* src tools --color", 
    "lint:watch": "npm run lint -- --watch", 
    "clean-dist": "npm run remove-dist && mkdir dist", 
    "remove-dist": "rimraf ./dist", 
    "prebuild": "npm run clean-dist && npm run lint && npm run test", 
    "build": "babel-node tools/build.js && npm run open:dist", 
    "build-prod": "babel-node tools/build.js", 
    "test": "mocha tools/testSetup.js \"./{,!(node_modules)/**/}*.spec.js\" --reporter progress", 
    "test:cover": "babel-node node_modules/isparta/bin/isparta cover --root src --report html node_modules/mocha/bin/_mocha -- --require ./tools/testSetup.js \"./{,!(node_modules)/**/}*.spec.js\" --reporter progress", 
    "test:cover:travis": "babel-node node_modules/isparta/bin/isparta cover --root src --report lcovonly _mocha -- --require ./tools/testSetup.js \"./{,!(node_modules)/**/}*.spec.js\" && cat ./coverage/lcov.info | node_modules/coveralls/bin/coveralls.js", 
    "test:watch": "npm run test -- --watch", 
    "open:cover": "npm run test:cover && open coverage/index.html", 
    "analyze-bundle": "babel-node ./tools/analyzeBundle.js", 
    "scp-upload": "node tools/deployToRemote", 
    "deploy": "babel-node tools/build.js && npm run scp-upload" 
    }, 
    "author": "Cory House", 
    "license": "MIT", 
    "dependencies": { 
    "axios": "0.15.2", 
    "babel-plugin-react-css-modules": "3.1.0", 
    "bootstrap-sass": "3.3.7", 
    "dotenv": "4.0.0", 
    "font-awesome": "4.7.0", 
    "j-toker": "0.0.10-beta3", 
    "jquery": "3.1.1", 
    "less": "2.7.1", 
    "lodash": "4.17.2", 
    "moment": "2.17.1", 
    "object-assign": "4.1.0", 
    "pingpp-js": "2.1.5", 
    "postcss-strip-inline-comments": "0.1.5", 
    "qrcode.react": "0.6.1", 
    "react": "15.3.2", 
    "react-addons-css-transition-group": "15.4.1", 
    "react-bootstrap": "0.30.8", 
    "react-bootstrap-button-loader": "1.0.8", 
    "react-bootstrap-date-picker": "5.0.1", 
    "react-burger-menu": "1.10.14", 
    "react-circular-progressbar": "0.1.3", 
    "react-country-region-selector": "1.0.4", 
    "react-document-meta": "2.1.1", 
    "react-dom": "15.3.2", 
    "react-dropzone": "3.13.1", 
    "react-ga": "2.1.2", 
    "react-gravatar": "2.6.1", 
    "react-lazyload": "2.2.7", 
    "react-masonry-component": "5.0.3", 
    "react-pager": "1.2.1", 
    "react-progress-button": "5.0.4", 
    "react-redux": "4.4.5", 
    "react-responsive": "1.3.0", 
    "react-router": "3.0.5", 
    "react-router-bootstrap": "0.23.1", 
    "react-router-redux": "4.0.6", 
    "react-scroll": "1.5.2", 
    "react-share": "1.12.1", 
    "react-sidebar": "2.3.0", 
    "react-slick": "0.15.0", 
    "react-svg": "2.1.19", 
    "redux": "3.6.0", 
    "redux-form": "6.6.3", 
    "redux-promise": "0.5.3", 
    "redux-thunk": "2.1.0", 
    "redux-ui": "0.0.15", 
    "scp2": "0.5.0", 
    "slick-carousel": "1.6.0", 
    "svg-injector": "1.1.3", 
    "universal-cookie": "2.0.8" 
    }, 
    "devDependencies": { 
    "assets-webpack-plugin": "3.5.1", 
    "autoprefixer": "6.5.1", 
    "babel-cli": "6.16.0", 
    "babel-core": "6.17.0", 
    "babel-eslint": "7.0.0", 
    "babel-loader": "7.1.1", 
    "babel-plugin-lodash": "3.2.11", 
    "babel-plugin-react-display-name": "2.0.0", 
    "babel-plugin-syntax-dynamic-import": "6.18.0", 
    "babel-plugin-transform-decorators-legacy": "1.3.4", 
    "babel-plugin-transform-react-constant-elements": "6.9.1", 
    "babel-plugin-transform-react-remove-prop-types": "0.2.10", 
    "babel-polyfill": "6.23.0", 
    "babel-preset-es2015": "6.24.1", 
    "babel-preset-latest": "6.16.0", 
    "babel-preset-react": "6.16.0", 
    "babel-preset-react-hmre": "1.1.1", 
    "babel-preset-stage-0": "6.24.1", 
    "babel-preset-stage-1": "6.16.0", 
    "babel-register": "6.16.3", 
    "bootstrap": "3.3.7", 
    "browser-sync": "2.17.5", 
    "chai": "3.5.0", 
    "chalk": "1.1.3", 
    "compression-webpack-plugin": "0.3.2", 
    "connect-history-api-fallback": "1.3.0", 
    "coveralls": "2.11.14", 
    "cross-env": "3.1.3", 
    "css-loader": "0.28.4", 
    "enzyme": "2.5.1", 
    "eslint": "3.8.1", 
    "eslint-plugin-import": "2.0.1", 
    "eslint-plugin-jsx-a11y": "2.2.3", 
    "eslint-plugin-react": "6.4.1", 
    "eslint-watch": "2.1.14", 
    "extract-text-webpack-plugin": "3.0.0", 
    "file-loader": "0.9.0", 
    "html-webpack-plugin": "2.24.0", 
    "imagemin-webpack-plugin": "1.4.4", 
    "isparta": "4.0.0", 
    "istanbul": "0.4.4", 
    "json-loader": "0.5.4", 
    "mocha": "3.1.2", 
    "mockdate": "1.0.4", 
    "node-sass": "3.10.1", 
    "npm-run-all": "3.1.1", 
    "open": "0.0.5", 
    "postcss-cssnext": "3.0.2", 
    "postcss-import": "10.0.0", 
    "postcss-loader": "2.0.6", 
    "postcss-scss": "1.0.2", 
    "postcss-strip-inline-comments": "0.1.5", 
    "postcss-url": "7.1.0", 
    "precss": "2.0.0", 
    "prompt": "1.0.0", 
    "react-addons-test-utils": "15.3.2", 
    "react-truncate": "2.1.0", 
    "redux-devtools": "3.3.1", 
    "redux-immutable-state-invariant": "1.2.4", 
    "replace": "0.3.0", 
    "resolve-url-loader": "1.6.0", 
    "rimraf": "2.5.4", 
    "s3-deploy": "0.7.3", 
    "sass-loader": "4.0.2", 
    "sinon": "1.17.6", 
    "sinon-chai": "2.8.0", 
    "style-loader": "0.13.1", 
    "svg-url-loader": "2.1.1", 
    "url-loader": "0.5.7", 
    "wdio-mocha-framework": "0.5.11", 
    "webdriverio": "4.8.0", 
    "webpack": "3.5.5", 
    "webpack-bundle-analyzer": "1.5.3", 
    "webpack-dev-middleware": "1.8.4", 
    "webpack-hot-middleware": "2.13.0", 
    "webpack-md5-hash": "0.0.5" 
    }, 
    "keywords": [ 
    "react", 
    "reactjs", 
    "react-router", 
    "hot", 
    "reload", 
    "hmr", 
    "live", 
    "edit", 
    "webpack", 
    "redux", 
    "flux", 
    "boilerplate", 
    "starter" 
    ], 
    "repository": { 
    "type": "git", 
    "url": "https://github.com/coryhouse/react-slingshot" 
    } 
} 

更新2:ps aux | grep npm輸出:

cxk280 3750 0.0 0.9 3102016 37076 s003 S+ 8:31PM 0:01.01 npm
cxk280 3716 0.0 0.7 3096668 30752 s003 S+ 8:31PM 0:01.14 node /Users/cxk280/code/my_directory/node_modules/.bin/nodemon --exec npm run babel-node cxk280 3715 0.0 0.6 3102016 23348 s003 S+ 8:31PM 0:00.92 npm
cxk280 3383 0.0 0.6 3102016 23240 s001 S+ 8:30PM 0:00.97 npm
cxk280 3382 0.0 0.5 3102016 22540 s001 S+ 8:30PM 0:00.97 npm
cxk280 3379 0.0 0.5 3102016 22536 s001 S+ 8:30PM 0:01.00 npm
cxk280 3378 0.0 0.6 3102016 23236 s001 S+ 8:30PM 0:01.00 npm
cxk280 3377 0.0 0.6 3102056 23236 s001 S+ 8:30PM 0:01.01 npm
cxk280 3375 0.0 0.4 3081244 14712 s001 S+ 8:30PM 0:00.66 node /Users/cxk280/code/my_directory/node_modules/.bin/npm-run-all --parallel test:watch open:src lint:watch cxk280 3122 0.0 0.6 3102528 23244 s001 S+ 8:30PM 0:00.76 npm
cxk280 4520 0.0 0.0 2423384 232 s006 R+ 8:32PM 0:00.00 grep npm

+0

發佈您的package.json –

+0

我已經更新了我的原始帖子* package.json *。 – 223seneca

+0

也請添加'ps aux |的輸出grep npm' –

回答

1

npm start運行時,它運行以下命令:

npm-run-all --parallel test:watch open:src lint:watch 

test:watch是什麼可能觸發您的測試套件再次運行。

如果你想避免這種情況,只需運行npm run open:src來啓動你的服務器,然後npm test來運行你的測試。

+0

這似乎工作。你是否知道爲什麼'npm start'腳本可能僅僅通過保存對其中一個文件的更改而被觸發? – 223seneca

相關問題