如何使用量角器API而不是配置文件设置量角器(v1.4.0)baseUrl?

时间:2014-12-03 15:55:05

标签: dynamic set protractor base-url

我使用量角器v1.4.0并且我想从命令行设置量角器baseUrl所以我不能使用

baseUrl: 'http://localhost:8000/',

量角器配置文件中的

配置选项。我想在量角器配置文件中使用“params”选项定义基本URL的默认值,如下所示:

params: { baseUrl: 'http://localhost:8080/' },

然后在运行量角器时通过从命令行传递新值来覆盖默认值,如下所示:

protractor 'path_to_my_conf_file' --params.baseUrl http://localhost:80/

然后在我的spec文件中我需要使用protractor API设置基本URL,但我找不到如何做到这一点。

以下问题的第一个答案正是我需要的,但它不起作用。

How can I add URL's dynamically to Protractor tests?

4 个答案:

答案 0 :(得分:7)

作为另一种选择,也可以在browser.baseUrl = "https://test-url.com"中尝试onPrepare(适用于Protractor 1.4.0)

答案 1 :(得分:4)

您可以从命令行更改它,如下所示:

protractor --baseUrl http://whateveryouwant

答案 2 :(得分:2)

使用grunt-protractor-runnergrunt-option库通过grunt运行测试:

protractor: {
    options: {
        configFile: "path_to_my_conf_file",
        args: {
            baseUrl: grunt.option('baseUrl', 'http://localhost:80/')
        }
    }
}

然后,通过以下方式运行任务:

grunt protractor --baseUrl=http://mynewurl

并且,为了让它使用默认的baseUrl,只需运行:

grunt protractor

答案 3 :(得分:0)

使用gulp进行测试;如下所示是gulpfile.js

var gulp = require('gulp');
var runSequence = require('run-sequence');
var protractor = require('gulp-protractor').protractor;

gulp.task('protractor', function() {
  var configFile = 'test/e2e/protractor-config.js';

  return gulp
  .src(['./test/e2e/spec/sample.js'])
  .pipe(protractor({
    configFile: configFile,
    args: ['--baseUrl', 'http://www.google.com']
  }))
  .on('error', function(e) { throw e; });
});

gulp.task('test', function(callback) {
  runSequence(
    'protractor',
    callback
  );
});

任务运行:

gulp test