SauceLabs通常使用最后一个describe()测试标题在其存档中命名该测试。不幸的是,对于几个describe层,这可能导致名称不太有意义。因此,我想动态地更改测试的名称,例如使用我在不同地方看到的测试名称,例如WebdriverIO结构文档,它应该像这样更新desiredCapabilities
browser.desiredCapabilities.name = "my test name"在beforeTest或afterTest钩子中设置“works”,因为它不会引发错误,并且反映在desiredCapabilities对象中,但是SauceLabs没有使用它作为存档中运行的测试的名称。
这里的另一个答案是给出了一个与CodeceptJS类似的问题
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的名称?
发布于 2020-08-13 17:13:36
在编写这篇文章时,wdio-sauce-service已经被@wdio/sauce-service所取代,它还依赖于您在这里引用的SauceLabs模块。在这两个服务中,Sauce Labs会话的最后一步更新after()函数中的作业,该作业在会话关闭或已经关闭时触发。
唯一可以覆盖作业名的方法是修改服务代码,创建自己的服务,或者在沙司之后对SauceLabs的API进行额外的调用,如果框架允许的话,服务使用框架函数来完成它。
如果您使用name功能,它将产生一个副作用,使所有测试都具有相同的作业名称。
https://stackoverflow.com/questions/53300437
复制相似问题