32

以下を実行して分度器テストを開始します。

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

1 つのパラメーター (この場合は 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));

    }
};

これを実行すると、config が定義されていないため、ReferenceError が発生します。どうすればいいですか?それは可能ですか?

4

4 に答える 4

29

beforeLaunch()分度器グローバルがステージで設定されているかどうかは完全にはわかりませんが、onPrepare()ステップで確実に利用できます。

paramsグローバル オブジェクトを介してオブジェクトにアクセスしbrowserます。

console.log(browser.params.baseUrl);

更新: Jasmine 2.6+、分度器 4.x を使用すると、browser.params は空でしたが、次のonPrepare()手順で機能しました:

console.log(browser.baseUrl);
于 2015-04-02T07:29:07.157 に答える
9

構成ファイル全体のすべての項目が必要な場合は、 を使用browser.getProcessedConfig()してこれを行うことができます。

onPrepare: () => {
    browser.getProcessedConfig().then(console.log); // even `params` is in here
}
于 2016-04-19T03:03:15.597 に答える