通过gulp

时间:2015-09-29 12:25:11

标签: angularjs node.js gulp protractor

我正在尝试将量角器作为gulp任务运行,但我无法让它工作。

我已经尝试了这样的gulp-protractor插件:

gulp.task('protractor-server', function (done) {
  var called = false;
  nodemon({
    script: 'test/e2e/server/server.js',
    stdout: true,
    ignore: ['app/**', 'node_modules'],
    watch: 'test/e2e/**/*.js'
  })
  .on('start', function () {
    if (!called) {
      done();
    }
    called = true;
  });
});

gulp.task('run-protractor', ['protractor-server'], function (done) {
  return gulp.src(['test/e2e/**/*.js'])
      .pipe(protractor({
        configFile: __dirname + '/protractor.conf.js'
      }))
      .on('error', function (error) {
        console.log('gulp error: ', error);
        throw error;
      });
});

但是,首先为什么我需要使用gulp.src(['test/e2e/**/*.js'])然后管道量角器?因为我已经在protractor.conf文件中指定了spec文件,所以不能自行运行量角器。 (我确实尝试过,但没有用)。

其次,当我尝试按照上面代码段中指定的方式运行时,我不断收到这样的错误:WARNING - pattern C:\[absolutepath]\test\e2e\[subfolder]\[filename].js did not match any files.对于e2e文件夹和子文件夹中存在的所有文件。这可能是什么原因?

这是我的量角器配置文件:

exports.config = {
  specs: [
    'test/e2e/[subfolder]/*.page.js',
    'test/e2e/[subfolder]/*.spec.js'
  ],
  baseUrl: 'http://localhost:3000'

};

如果我单独启动服务器并从命令提示符运行量角器,它可以正常工作。我正在考虑使用child_process.spawn并启动一个量角器子进程,但我还没有得到它。关于如何从gulp任务启动量角器的任何建议?

1 个答案:

答案 0 :(得分:0)

无需使用'test / e2e / ** / * .js'] 自行提供protractor.conf.js文件中的所有配置。

你可以使用像     gulp.task('run-protractor',['run-server','run-webdriver'],function(done){         //在这里运行量角器conf     })

创建run-server和run-webdriver gulp taks,在它们工作后单独测试它们,将它们用于run-protractor任务。