12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // 1. start the dev server using production config
- process.env.NODE_ENV = 'testing'
- const webpack = require('webpack')
- const DevServer = require('webpack-dev-server')
- const webpackConfig = require('../../build/webpack.prod.conf')
- const devConfigPromise = require('../../build/webpack.dev.conf')
- let server
- devConfigPromise.then(devConfig => {
- const devServerOptions = devConfig.devServer
- const compiler = webpack(webpackConfig)
- server = new DevServer(compiler, devServerOptions)
- const port = devServerOptions.port
- const host = devServerOptions.host
- return server.listen(port, host)
- })
- .then(() => {
- // 2. run the nightwatch test suite against it
- // to run in additional browsers:
- // 1. add an entry in test/e2e/nightwatch.conf.js under "test_settings"
- // 2. add it to the --env flag below
- // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
- // For more information on Nightwatch's config file, see
- // http://nightwatchjs.org/guide#settings-file
- let opts = process.argv.slice(2)
- if (opts.indexOf('--config') === -1) {
- opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])
- }
- if (opts.indexOf('--env') === -1) {
- opts = opts.concat(['--env', 'chrome'])
- }
- const spawn = require('cross-spawn')
- const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })
- runner.on('exit', function(code) {
- server.close()
- process.exit(code)
- })
- runner.on('error', function(err) {
- server.close()
- throw err
- })
- })
|