我有一個運行在各種不同模式的應用程序。這些模式完全改變了用戶界面,因此每種模式都需要一套完全不同的E2E測試。如何使用wdio.conf.js文件指定哪些e2e測試運行的測試文件夾?
我爲每種模式創建了不同的wdio配置文件,並試圖爲每個模式指定規格,以便它只運行指定的規格。不幸的是,這是行不通的。
所以現在有三個wdio.conf文件(所有這些都從wdio.conf.js默認繼承)和下列文件夾結構:我創建NPM命令每種模式
+--test
+--specs
+--browser
+--modeA
+--testFile.js
+--modeB
+--testFile.js
+--wdio.conf.js
|
+--wdio.conf.modeA.js
|
+--wdio.conf.modeB.js
,這是如下:
// (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文件I指定一些變量可以在每個不同的模式改變(兩者從wdio.conf繼承),但我想改變什麼文件運行,基本上指定我只想運行modeA中的文件當我運行npm run tools:e2e:modeA
時,運行模式B的文件,當我運行npm run tools:e2e: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已命令行參數,您可以使用。 –