0

我有几个套件,每个套件都有一些规范文件。

我注意到的是,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 项(x 是it规范文件中的测试数)

期望: 的值globalStuff应该是所有推送值的聚合。

4

1 回答 1

1

我们实现这一目标的一种更简单的方法是使用全局对象。

你可以在你的配置文件中设置类似的东西global.platform = web,这应该可以在你的所有测试中访问。同样,您可以在全局对象上设置任意数量的唯一属性,并且它们应该可以在您的测试中访问。

您的代码段应如下所示。

global.globalStuff = []

const config = { ...
  beforeTest: function(test) {
    globalStuff.push(Math.random())
  },

  afterSession: function(config, capabilities, specs) {
    console.log(globalStuff)
  },
}

是一个实现此功能的示例项目。

于 2020-06-05T20:43:27.633 回答