123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- 'use strict';
- var _ = require('lodash');
- var debug = require('debug')('cypress:cli');
- var util = require('../util');
- var spawn = require('./spawn');
- var verify = require('../tasks/verify');
- // maps options collected by the CLI
- // and forms list of CLI arguments to the server
- var processRunOptions = function processRunOptions() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- debug('processing run options');
- var args = ['--run-project', options.project];
- //// if key is set use that - else attempt to find it by environment variable
- if (options.key == null) {
- debug('--key is not set, looking up environment variable CYPRESS_RECORD_KEY');
- options.key = util.getEnv('CYPRESS_RECORD_KEY') || util.getEnv('CYPRESS_CI_KEY');
- }
- if (options.env) {
- args.push('--env', options.env);
- }
- if (options.config) {
- args.push('--config', options.config);
- }
- if (options.configFile !== undefined) {
- args.push('--config-file', options.configFile);
- }
- if (options.port) {
- args.push('--port', options.port);
- }
- // if we have specific spec(s) push that into the args
- if (options.spec) {
- args.push('--spec', options.spec);
- }
- //// if we have a specific reporter push that into the args
- if (options.reporter) {
- args.push('--reporter', options.reporter);
- }
- //// if we have a specific reporter push that into the args
- if (options.reporterOptions) {
- args.push('--reporter-options', options.reporterOptions);
- }
- if (options.ci) {
- //// push to display the deprecation message
- args.push('--ci');
- //// also automatically record
- args.push('--record', true);
- }
- //// if we have a key assume we're in record mode
- if (options.key) {
- args.push('--key', options.key);
- }
- //// if record is defined and we're not
- //// already in ci mode, then send it up
- if (options.record != null && !options.ci) {
- args.push('--record', options.record);
- }
- if (options.parallel) {
- args.push('--parallel');
- }
- if (options.group) {
- args.push('--group', options.group);
- }
- if (options.ciBuildId) {
- args.push('--ci-build-id', options.ciBuildId);
- }
- if (options.outputPath) {
- args.push('--output-path', options.outputPath);
- }
- if (options.browser) {
- args.push('--browser', options.browser);
- }
- if (options.headed) {
- args.push('--headed', options.headed);
- }
- if (options.exit === false) {
- args.push('--no-exit');
- }
- return args;
- };
- module.exports = {
- processRunOptions: processRunOptions,
- // resolves with the number of failed tests
- start: function start() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- _.defaults(options, {
- key: null,
- spec: null,
- reporter: null,
- reporterOptions: null,
- project: process.cwd()
- });
- function run() {
- var args = processRunOptions(options);
- debug('run to spawn.start args %j', args);
- return spawn.start(args, {
- dev: options.dev
- });
- }
- if (options.dev) {
- return run();
- }
- return verify.start().then(run);
- }
- };
|