Skip to content

[🐛 Bug]: Allure-reporter 9.20.0 - Parallel multi-capability runs overwrite Allure test results (only last device kept) #14792

@l0king-alt

Description

@l0king-alt

Have you 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/a

Code 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bug 🐛help wantedIssues that are free to take by anyone interested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions