量角器javascript执行上下文堆栈顺序

时间:2017-04-30 20:14:36

标签: javascript protractor execution

我试图理解量角器根据执行堆栈执行的顺序。在创建和推送全局执行上下文(ec)之后,执行堆栈中的顺序是什么?是吗?

     stack
    ------
    |spec1 ec|
    |spec2 ec|
    |spec3 ec|
    |onPrepare ec|
    |conf.js ec|
    |global ec|
    ----------

我确定这不正确,因为我只是在这里猜测。有人可以了解执行上下文创建的时间和时间吗?感谢。

1 个答案:

答案 0 :(得分:0)

我可以按照以下知识进行指导:

量角器在我们写conf.js

时调用protractor conf.js

所以起点是conf.js

conf.js通常包含onPrepare,您可以在其中保留环境详细信息和报告生成选项,无论是自定义还是您使用,都可以从npm包中打包。 另外onPrepare一直是config.js文件中最有用的部分之一,因为它允许在一个地方定义我的变量,并且可以跨不同的spec.js文件访问它们。 See example

Globals:可以在params属性的帮助下从Protractor配置文件中设置全局变量:

exports.config = {
// ...

params: {
    glob: 'test'
}

// ...
};

您可以在Spec中使用它:

browser.executeScript(function (glob) {

// use passed variables on the page
console.log(glob);

}, browser.params.glob);

Sample taken from here

conf.jsonPrepareglobals是设置和预先运行的一部分,用于运行specs部分可选的测试用例。

成功创建后,specs运行,您可以在conf.js中定义它并行/顺序在不同的浏览器上运行。

示例:

multiCapabilities: [
{
    shardTestFiles: true,
    maxInstances: 1,
    sequential: true,
    browserName: 'chrome',
    specs: ['specs/spec1.js','specs/spec2.js','specs/spec3.js']
},
{
    shardTestFiles: true,
    maxInstances: 1,
    sequential: true,
    browserName: 'chrome',
    specs: ['specs/spec4.js',
        'specs/spec5.js',
        'specs/spec6.js',
    ]
}

您还可以定义regressionsanity等套件并单独运行。

protractor config.js --suite regression,sanity

对于你的问题:

1) conf.js
2) globals & on Prepare
3)specs

我希望你现在清楚。