-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
Have you read the Contributing Guidelines on issues?
- I have read the Contributing Guidelines on issues.
WebdriverIO Version
9.20.0
Node.js Version
20.*
Mode
WDIO Testrunner
Which capabilities are you using?
capabilities: [
{ browserName: 'chrome', 'wdio-ics:options': { logName: 'Chrome' } },
{ browserName: 'edge', 'wdio-ics:options': { logName: 'Edge' } },
],
};What happened?
Only one device’s result appears (whichever finishes last). All other devices’ JSON files are overwritten (same filename/uuid). Allure UI shows a single device; filtering by feature/device not possible. On versions pre 9.20.0, I was able to use addFeature/addArgument to differanrtiate different devices a create a basic filter but afterTest/beforeTest calls to addFeature/addArgument are (now) treated the same way and only the test that finnished last is visible in the reporter.
What is your expected behavior?
Each capability execution (same test title) should produce a distinct Allure test entry so the report shows all devices/browsers. Test UUID should be unique per worker/capability (e.g. include cid or capability name). afterTest and beforeTest should still allow adding labels
I could not find any changes in the documentation so I have to assume this is a bug.
How to reproduce the bug.
wdio.repro.conf.ts
import { config as base } from './wdio.shared.js'; export const config: WebdriverIO.Config = { runner: 'local', specs: ['./specs/simple.spec.ts'], maxInstances: 10, framework: 'mocha', reporters: [['allure', { outputDir: 'allure-results' }]], capabilities: [ { browserName: 'chrome', 'wdio-ics:options': { logName: 'Chrome' } }, { browserName: 'edge', 'wdio-ics:options': { logName: 'Edge' } }, ], beforeTest() { //or afterTest const deviceName = browser.requestedCapabilities['wdio-ics:options']['logName']; allureReporter.addArgument('CustomArg', 'A Device - ' + String(deviceName)); allureReporter.addFeature('A Device - ' + String(deviceName)); },
Spec:
describe('Parallel overwrite repro', () => { it('should keep distinct results per capability', async () => { await browser.url('https://webdriver.io/'); await browser.pause(500); // simulate work }); });
After run:
allure-results contains only 1 test result file for "Parallel overwrite repro should keep distinct results per capability". Allure report shows only one test (last finished capability).
Relevant log output
n/aCode of Conduct
- I agree to follow this project's Code of Conduct
Is there an existing issue for this?
- I have searched the existing issues