首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何覆盖wdio服务给SauceLabs的测试名称?

如何覆盖wdio服务给SauceLabs的测试名称?
EN

Stack Overflow用户
提问于 2018-11-14 12:38:39
回答 1查看 607关注 0票数 1

SauceLabs通常使用最后一个describe()测试标题在其存档中命名该测试。不幸的是,对于几个describe层,这可能导致名称不太有意义。因此,我想动态地更改测试的名称,例如使用我在不同地方看到的测试名称,例如WebdriverIO结构文档,它应该像这样更新desiredCapabilities

代码语言:javascript
运行
复制
browser.desiredCapabilities.name = "my test name"

beforeTestafterTest钩子中设置“works”,因为它不会引发错误,并且反映在desiredCapabilities对象中,但是SauceLabs没有使用它作为存档中运行的测试的名称。

这里的另一个答案是给出了一个与CodeceptJS类似的问题

代码语言:javascript
运行
复制
const SauceLabs = require('saucelabs')

saucelabs = new SauceLabs({
  username: your-username,
  password: your-accessKey
});

// run test(s) ...

saucelabs.updateJob(sessionID, {
  name: test-title,
  passed: passed
}, done);

不幸的是,我甚至不需要/不需要SauceLabs模块。

罪魁祸首似乎是wdio-sauce-service,因为使用云服务的WebdriverIO文档指出

如果您设置了name,这将更改此构建的Sauce实验室中此测试的名称。如果您使用的是WDIO和wdio-sauce-service,那么WebdriverIO会自动为测试设置一个正确的名称。

如何重写wdio-sauce-service传递给SauceLabs的名称?

EN

回答 1

Stack Overflow用户

发布于 2020-08-13 17:13:36

在编写这篇文章时,wdio-sauce-service已经被@wdio/sauce-service所取代,它还依赖于您在这里引用的SauceLabs模块。在这两个服务中,Sauce Labs会话的最后一步更新after()函数中的作业,该作业在会话关闭或已经关闭时触发。

唯一可以覆盖作业名的方法是修改服务代码,创建自己的服务,或者在沙司之后对SauceLabs的API进行额外的调用,如果框架允许的话,服务使用框架函数来完成它。

如果您使用name功能,它将产生一个副作用,使所有测试都具有相同的作业名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53300437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档