SauceLabs通常使用最后一个describe()
测试标题在其存档中命名测试。不幸的是,在describe
的多层中,这可能会导致名称不是很有意义。因此,我想动态更改测试的名称,例如使用
我在不同的地方见过WebdriverIO Testrunner Configuration文档,即应该像这样更新desiredCapabilities
browser.desiredCapabilities.name = "my test name"
在beforeTest
或afterTest
钩子“ works”中进行设置,因为不会引发错误,并且会反映在desiredCapabilities
对象中,但SauceLabs不会将其用作存档中测试运行的名称。
Another answer here on SO,针对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 Using Cloud Services文档指出了这一点
如果您设置
name
,则将在Sauce Labs中为此版本更改此测试的名称。如果您将WDIO testrunner与wdio-sauce-service
WebdriverIO结合使用,则会自动为测试设置一个适当的名称。
如何覆盖wdio-sauce-service
传递给SauceLabs的名称?
答案 0 :(得分:0)
在撰写本文时,wdio-sauce-service
已由@wdio/sauce-service
取代,after()
也依赖于您在此处引用的SauceLabs模块。在这两种服务中,进行酱汁实验室会话的最后一步都会更新name
函数中的作业,该函数在会话关闭或已经关闭时触发。
您可以覆盖作业名称的唯一方法是修改服务代码,自行编写,或者在调味料服务使用框架函数(如果框架允许)后对SauceLabs API进行附加调用。< / p>
如果您使用# settings.py
# Point to custom account adapter.
ACCOUNT_ADAPTER = 'myproject.myapp.adapter.CustomAccountAdapter'
# A custom variable we created to tell the CustomAccountAdapter whether to
# allow signups.
ACCOUNT_ALLOW_SIGNUPS = False
功能,则会使所有测试具有相同的工作名称具有副作用。