2016-06-10 43 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時,我遇到了全局值問題。當錯誤時工作。