一尘不染

我可以访问量角器配置文件中的参数吗?

angularjs

我通过运行以下命令开始量角器测试:

protractor protractor.conf.js --params.baseUrl=http://www.google.com --suite all

我想运行一个“启动前”功能,该功能取决于一个参数(在本例中为baseUrl)。有可能吗

exports.config = {
    seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar',
    seleniumPort: 4455,
    suites: {
        all: 'test/*/*.js',
    },
    capabilities: {
        'browserName': 'firefox'
    },
    beforeLaunch: function() {
        console.log('I want to access my baseUrl parameter here: ' + config.params.baseUrl);
    },
    onPrepare: function() {

        require('jasmine-reporters');
        jasmine.getEnv().addReporter(
            new jasmine.JUnitXmlReporter('output/xmloutput', true, true));

    }
};

如果我运行该命令,则会得到ReferenceError,因为未定义config。我该怎么办?那有可能吗?


阅读 256

收藏
2020-07-04

共1个答案

一尘不染

我不能完全确定是否在此beforeLaunch()阶段设置了量角器全局变量,但绝对可以在onPrepare()步骤中使用它们。

params通过全局browser对象访问对象:

console.log(browser.params.baseUrl);

更新:使用Jasmine 2.6+,量角器4.x,browser.params是空的,但是以下onPrepare()步骤可以工作:

console.log(browser.baseUrl);
2020-07-04