WebdriverIO-Cucumber spec数组配置导致测试重复执行求助
WDIO测试重复执行问题的解决办法
问题出在哪
你在wdio.conf.js的specs里写了嵌套数组,而WDIO的specs只认一维数组。嵌套数组会被WDIO当成额外的一组测试任务,所以整个测试跑了两次:
- 第一次跑
login.feature+webhook.feature+fileupload.feature - 第二次单独跑嵌套数组里的
webhook.feature和fileupload.feature
重复执行会搞乱测试会话的状态,比如重复登录导致页面元素状态异常,自然就会出现元素找不到的报错。
改完就能正常跑的配置
把嵌套的数组展开,改成一维数组就行,这样三个测试文件会在单个会话里按顺序执行:
specs: [ "./test/specs/features/login/login.feature", "./test/specs/features/datalanding/webhook.feature", "./test/specs/features/datalanding/fileupload.feature", ],
要是你本来就只想跑后两个测试,直接删掉login.feature的路径:
specs: [ "./test/specs/features/datalanding/webhook.feature", "./test/specs/features/datalanding/fileupload.feature", ],
补充说明
WDIO的specs配置只接受字符串路径组成的一维数组,任何嵌套结构都会被解析成多组测试任务,触发重复执行。改成一维数组后,测试会按你指定的顺序在同一会话里运行,不会再因为状态混乱出现元素查找失败的问题。
内容的提问来源于stack exchange,提问作者Mahadev Gouda
相关产品推荐
相关产品推荐

