Path: blob/develop/web/test/e2e/runner.js
387 views
// 1. start the dev server using production config1process.env.NODE_ENV = 'testing'23const webpack = require('webpack')4const DevServer = require('webpack-dev-server')56const webpackConfig = require('../../build/webpack.prod.conf')7const devConfigPromise = require('../../build/webpack.dev.conf')89let server1011devConfigPromise.then(devConfig => {12const devServerOptions = devConfig.devServer13const compiler = webpack(webpackConfig)14server = new DevServer(compiler, devServerOptions)15const port = devServerOptions.port16const host = devServerOptions.host17return server.listen(port, host)18})19.then(() => {20// 2. run the nightwatch test suite against it21// to run in additional browsers:22// 1. add an entry in test/e2e/nightwatch.conf.js under "test_settings"23// 2. add it to the --env flag below24// or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`25// For more information on Nightwatch's config file, see26// http://nightwatchjs.org/guide#settings-file27let opts = process.argv.slice(2)28if (opts.indexOf('--config') === -1) {29opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])30}31if (opts.indexOf('--env') === -1) {32opts = opts.concat(['--env', 'chrome'])33}3435const spawn = require('cross-spawn')36const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })3738runner.on('exit', function (code) {39server.close()40process.exit(code)41})4243runner.on('error', function (err) {44server.close()45throw err46})47})484950