I am currently using a testing framework with Mocha, Chai, and WebdriverIO. As it stands, the Selenium Standalone Server runs the full test suite whenever I save a change to the spec file. I want to disable this and only run the test suite when I enter the command to do so in the terminal. This command currently works, but because the tests are also being run automatically on save, sometimes multiple identical tests run concurrently, causing errors.
How do I stop the Selenium Standalone Server from auto-running tests?
Update: As a commenter requested, here is my 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"
}
}
Update 2: The output of 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
When
npm start
is run, it runs the following command:The
test:watch
is what is likely triggering your test suite to run again.If you want to avoid that, just run
npm run open:src
to start your server, thennpm test
to run your test.