如何从 wdio 配置文件中的 afterTest 挂钩访问测试运行的文件名?
How can I access the file name a test runs in from inside the afterTest hook in a wdio config file?
我试图从我的 wdio 配置文件中的 afterTest
挂钩访问每个测试运行的文件名。但是,提供给挂钩的参数的 none 包括文件名。我尝试从 onWorkerStart
挂钩获取文件名,因为提供给该挂钩的 specs
参数包含文件名,所以像这样:
onWorkerStart(cid, caps, specs) {
const fileName = specs[0];
}
但我不确定如何在我的 afterTest
挂钩中访问我在 onWorkerStart
挂钩中创建的 fileName
变量。我试过也许将它用作全局变量:
onWorkerStart(cid, caps, specs) {
global.fileName = specs[0];
}
afterTest() {
console.log(global.fileName);
}
但这只是打印“未定义”。如果我也从 onWorkerStart
挂钩打印它,它实际上首先从那里打印文件名,然后从 afterTest
挂钩打印“未定义”。
我终于明白了。我不知道 wdio 配置中的全局变量必须在 before
挂钩内创建,幸运的是,before
挂钩包含一个包含文件名的参数 specs
。因此,在所有其他挂钩中访问文件名所需要做的就是在 before
挂钩中定义 global.specFileName = specs[0]
。现在 specFileName
可以在 afterTest
挂钩中使用。
我试图从我的 wdio 配置文件中的 afterTest
挂钩访问每个测试运行的文件名。但是,提供给挂钩的参数的 none 包括文件名。我尝试从 onWorkerStart
挂钩获取文件名,因为提供给该挂钩的 specs
参数包含文件名,所以像这样:
onWorkerStart(cid, caps, specs) {
const fileName = specs[0];
}
但我不确定如何在我的 afterTest
挂钩中访问我在 onWorkerStart
挂钩中创建的 fileName
变量。我试过也许将它用作全局变量:
onWorkerStart(cid, caps, specs) {
global.fileName = specs[0];
}
afterTest() {
console.log(global.fileName);
}
但这只是打印“未定义”。如果我也从 onWorkerStart
挂钩打印它,它实际上首先从那里打印文件名,然后从 afterTest
挂钩打印“未定义”。
我终于明白了。我不知道 wdio 配置中的全局变量必须在 before
挂钩内创建,幸运的是,before
挂钩包含一个包含文件名的参数 specs
。因此,在所有其他挂钩中访问文件名所需要做的就是在 before
挂钩中定义 global.specFileName = specs[0]
。现在 specFileName
可以在 afterTest
挂钩中使用。