javascript - 是否可以访问在 wdio.conf 中声明的变量?
问题描述
在 wdio.conf 中onPrepare
,我将所有功能文件存储在一个数组中。
let listOfFiles = fs.readdirSync(process.cwd() + '/features');
var featureFiles = [];
listOfFiles.map((file) => {
featureFiles.push(file)
});
是否可以在另一个文件中使用该featureFiles
数组?
我想在执行期间生成功能文件列表并将其分配给变量“featureFiles”(已声明但没有任何值开始)。从我目前看到的情况来看,在 wdio.conf 中是不可能做到这一点的,因为你总是会在开头得到为你的变量声明的值。在我的例子中,它是一个空数组。
解决方案
因此,如果您想在featureFiles
整个测试脚本中使用,那么我们遵循的选项之一是使用全局对象。
在您的 wdio.conf 文件中,尝试以下操作:
let featureFiles = [];
...
export.config = {
... //some line of code
//OnPrepare hook
onPrepare(){
let listOfFiles = fs.readdirSync(process.cwd() + '/features');
listOfFiles.map((file) => {
featureFiles.push(file);
});
}
//before session hook
beforeSession(){
global.featureFiles = featureFiles; //assigning the value of featureFiles to a global variable
}
}
完成上述操作后。该变量featureFiles
将在所有测试文件中可用。
注意:vscode intellisense 可能无法识别该变量,但您仍然可以使用它。
推荐阅读
- google-apps-script - UrlFetchApp fetchAll 的配额
- unity3d - 如何更改对象被实例化的中心的距离/半径
- angular - chromedriver 未知错误:无法为用户数据目录创建临时目录 (80.0.3987.16)
- keras - Keras:使用生成器输出训练集批次和目标,以及不用于训练的辅助数据
- wpf - WPF,将焦点设置在 TabControl 的内容上
- linux - Apache Web 服务器 LDAP - 如何允许非 ldap 用户访问?
- iis - 服务器上的 Request.Form 为空而不是 localhost
- spring - 如何配置 Spring Boot 应用程序以使用两个消息属性文件?
- regex - 正则表达式 - 删除第一个字母直到第一个元音
- java - Java从文件名中的日期查找目录中的最新文件