gpt4 book ai didi

javascript - 如何使用 wdio.conf.js 文件指定要运行的 e2e 测试的测试文件夹?

转载 作者:行者123 更新时间:2023-11-30 21:17:50 26 4
gpt4 key购买 nike

我有一个以各种不同模式运行的应用程序。这些模式完全改变了 UI,因此每种模式都需要一组完全不同的 E2E 测试。

我为每种模式创建了不同的 wdio 配置文件,并尝试为每种模式指定规范,以便它只运行指定的规范。不幸的是,这不起作用。

所以现在有三个 wdio.conf 文件(所有这些文件都继承自 wdio.conf.js 的默认值)和以下文件夹结构:

+--test
+--specs
+--browser
+--modeA
+--testFile.js
+--modeB
+--testFile.js
+--wdio.conf.js
|
+--wdio.conf.modeA.js
|
+--wdio.conf.modeB.js

我已经为每种模式创建了 npm 命令,如下所示:

// (package.json)
...
"tools:e2e": "./node_modules/.bin/wdio wdio/wdio.conf.js",
"tools:e2e:modeA": "./node_modules/.bin/wdio wdio/wdio.conf.modeA.js",
"tools:e2e:modeB": "./node_modules/.bin/wdio wdio/wdio.conf.modeB.js",
...

好吧,所以在每个 wdio.conf 文件中我指定了一些变量,这些变量可能会在每种不同的模式下发生变化(它们都继承自 wdio.conf),但是我想更改运行的文件,基本上指定我只想要当我运行 npm run tools:e2e:modeA 时运行 modeA 文件夹中的文件,而当我运行 npm run tools:e2e:modeB 时只运行 modeB 的文件。

我试图通过在每个 conf 文件中定义规范来完成此操作,如下所示:

// wdio.conf.js
specs: [
'./wdio/test/specs/browser/**/*.js'
],

--

// wdio.conf.modeA.js
specs: [
'./wdio/test/specs/browser/modeA/*.js'
],
exclude: [
'./wdio/test/specs/browser/modeB/*.js'
]

--

 // wdio.conf.modeB.js
specs: [
'./wdio/test/specs/browser/modeB/*.js'
],
exclude: [
'./wdio/test/specs/browser/modeA/*.js'
]

然而,这给了我以下错误:

Error: specs or exclude property should be an array of strings

这没有意义,因为如您所见,它们是一个字符串数组!

所以基本上我想通过我的 npm 命令运行我的 wdio 测试,但只运行模式的文件夹而不是所有的文件夹。我该怎么做?

PS:我试图将它们分成不同的套件,并在我的 package.json 中的 npm 命令中指定我正在运行哪个套件,但是这样做我无法指定我想运行哪个规范,哪个也是我经常使用的东西。

最佳答案

wdio 接受命令行参数。试试这个


"tools:e2e:modeA": "./node_modules/.bin/wdio wdio/wdio.conf.js --spec ./wdio/test/specs/browser/modeA/*.js",
"tools:e2e:modeB": "./node_modules/.bin/wdio wdio/wdio.conf.js --spec ./wdio/test/specs/browser/modeB/*.js"

这样,你只需要维护一个wdio.conf.js文件

关于javascript - 如何使用 wdio.conf.js 文件指定要运行的 e2e 测试的测试文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45493591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com