0

Gulp-Protractor 和 Gulp-Angular-Protractor 可以将参数和配置文件传递给量角器。

那么为什么我需要将文件列表传递给 gulp?

function runProtractor(done) {
var params = process.argv;
var args = params.length > 3 ? [params[3], params[4]] : [];

gutil.log('arguments: ' + args);

gulp.src(paths.e2eFiles)
  .pipe(protractor({
      configFile: 'protractor.local.conf.js',
      args: args,
      'autoStartStopServer': true,
      'debug': true
  }))
  .on('error', function (err) {
      gutil.log(gutil.colors.red("An error occurred in protractor. Did you start the webdriver?"));
      gutil.log(gutil.colors.red("Run cmd 'start gulp webdriver'."));
      gutil.log(gutil.colors.red('error: ' + err));
      // Make sure failed tests cause gulp to exit non-zero
      throw err;
  })
  .on('end', function () {
      // Close browser sync server
      browserSync.exit();
      done();
  });

问题是量角器没有运行套件,而是运行 src 中的文件。有没有办法直接调用量角器?

4

1 回答 1

1

您可以将 gulp.src 留空并将规格或套件作为 args 传递,文档不能很好地解释它,但我已经能够将我通过 gulp 尝试过的任何配置文件参数作为 arg 传递(我想我直接连接有问题,因为它是布尔值而不是字符串)。

gulp.task('e2e', function(cb) {
    gulp.src([]).pipe(protractor({
      configFile: './conf/protractor.conf.js',
      args: [
        '--baseUrl', 'http://localhost/',
        '--maxSessions', 1,
        '--suite', './specs/test-spec.js',
        '--params.environment', 'development'
      ]
    })).on('error', function(e) { throw e })
    .on('end', cb)
  });
};
于 2016-07-19T10:57:23.883 回答