我有几个套件,每个套件中都有一些规范文件。
我注意到的是,wdio
运行任何规范文件中的所有测试后,它会关闭浏览器并打开浏览器的新实例。在这种情况下,甚至会删除本地存储。
所以我很难找到一个地方来定义一个变量,它的值在所有测试中都保持不变。
我尝试在wdio.base.conf.js
文件之上定义一个数组。
let globalStuff = []
const config = { ...
beforeTest: function (test) {
globalStuff.push(Math.random())
},
afterSession: function (config, capabilities, specs) {
console.log(globalStuff)
},
}
观察:每次重置globalStuff
的值,并且仅包含 x 个项目(如果在等级库中it
测试,则 x 是数字(
期望值:globalStuff
的值应该是所有推送值的聚合。
我们实现这一目标的一种更简单的方法是使用全局对象。
您可以在配置文件中设置类似global.platform = web
的内容,这应该可以在所有测试中访问。同样,您可以在全局对象上设置任意数量的唯一属性,并且它们应该可以在测试中访问。
您的代码段应如下所示。
global.globalStuff = []
const config = { ...
beforeTest: function(test) {
globalStuff.push(Math.random())
},
afterSession: function(config, capabilities, specs) {
console.log(globalStuff)
},
}
下面是实现此目的的示例项目。