【问题标题】:How can I use the wdio.conf.js files to specify test folders of which e2e tests to run?如何使用 wdio.conf.js 文件指定要运行哪些 e2e 测试的测试文件夹?
【发布时间】:2017-08-03 20:02:45
【问题描述】:

我有一个以各种不同模式运行的应用程序。这些模式完全改变了 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'
  ]

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

错误:specs 或 exclude 属性应该是字符串数组

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

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

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

【问题讨论】:

  • wdio 有命令行参数,你可以使用。

标签: javascript node.js selenium-webdriver e2e-testing webdriver-io


【解决方案1】:

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文件

【讨论】:

  • 这就是我一直在使用的,但是说每种模式的规格不止一个(我将其分类捆绑到套件中)。这样我们就被限制在一个单一的规范上,这对我不起作用。但是,我已经就这个问题提出了一个问题,他们会努力解决的:)谢谢你的帮助。
  • 你能链接到这个问题吗?我也有兴趣关注这个!
猜你喜欢
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2016-07-27
  • 2022-01-22
  • 1970-01-01
  • 2016-01-27
  • 1970-01-01
相关资源
最近更新 更多