我试图理解量角器根据执行堆栈执行的顺序。在创建和推送全局执行上下文(ec)之后,执行堆栈中的顺序是什么?是吗?
stack
------
|spec1 ec|
|spec2 ec|
|spec3 ec|
|onPrepare ec|
|conf.js ec|
|global ec|
----------
我确定这不正确,因为我只是在这里猜测。有人可以了解执行上下文创建的时间和时间吗?感谢。
答案 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);
conf.js
,onPrepare
,globals
是设置和预先运行的一部分,用于运行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',
]
}
您还可以定义regression
,sanity
等套件并单独运行。
protractor config.js --suite regression,sanity
对于你的问题:
1) conf.js
2) globals & on Prepare
3)specs
我希望你现在清楚。