2016-06-10 46 views
0

如何从onPrepare()中的conf传递全局变量。以便它可以用于不同的规格。从量角器中的onPrepare()中传递全局变量

Inside onPrepare(),因为我从函数中获取值,我在onPrepare()中调用。所以想要把这个价值看作全球性的。以便它可以在所有规格中使用。

回答

1

可以在onPrepare功能使用或设置browser.params对象:

onPrepare: function() { 
    browser.params.YOUR_PARAM = 'VALUE'; 
} 

使用符合规格:

it('should...', function() { 
    expect(browser.params.YOUR_PARAM).toEqual('VALUE'); 
}); 
+0

它不适用于browser.params <变量名称> – saurabh04

2

这里是我是如何做到全局 - 我使用多个浏览器在测试中,所以我需要一些快捷方式来访问这两个浏览器很容易:

onPrepare: function() { 
    // Making manager and user globals - they will be accessible in all tests. 
    global.manager = browser; 
    global.user = browser.forkNewDriverInstance(); 

    ... 
    //Making Expected Conditions global since it used widely. 
    global.EC = protractor.ExpectedConditions; 

然后,它将被访问到处只是由ca lling

manager.$('blabla').click(); 
user.$('blabla').click(); 

user.wait(EC.visiblityOf($('foo')), 5000, 'foo should be visible'); 

希望这有助于!

+0

它应该 - 我用最长的时间使用最新的3.3.0量角器和带量角器的茉莉花。你能提供你的例子吗? – Xotabu4

1

我已经张贴在小胶质的回答,您可以检查出基本上你应该使用“全球”

helper.js - >常用函数/方法要执行

module.exports = { 
    foo: 'bar', 
    doSomething: function() { 
    var sum = 1+1; 
    return sum; 
    } 
    }; 

配置.js文件

var helper = require('./helper.js’); 

    onPrepare: function() { 

    global.output = helper.doSomething(); 

    }, 

spec.js

describe(‘global variable test’, function() { 

    it(’should print global variable’, function() { 

    console.log(output); 

    }); 
    }); 
+0

谢谢,是的,它工作正常.. – saurabh04

-1

当你在配置文件中设置shardTestFiles参数为true时它会工作吗? 当我将它设置为true时,我遇到了全局值问题。当错误时工作。