Allure marks tests as "broken" when tests really failed - webdriverio - typescript - allure #3017
Unanswered
lhidalgomqa
asked this question in
Questions & Support
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the problem
When a test fails, Allure incorrectly marks it as "broken" instead of "failed", even though the failure is clearly defined and expected (e.g., using expect.fail(...)). This misclassification affects the reliability of test reports by misrepresenting test outcomes.
We have implemented a custom function (reportFail) using allure-js-commons to report test failures, attach relevant logs and screenshots, and optionally close the test with an error. Even though the test step appears as "FAILED", the entire test ends up being reported as "BROKEN", which is misleading.
Additionally, we have another function (reportWarning) intended to mark a test as "broken" when a warning occurs. However, we have no reliable way to mark the whole test as "BROKEN" via this method either, since the status appears only at the step level.
To Reproduce
Steps to reproduce the behavior:
Run the test and observe the Allure report:
The step is correctly marked as FAILED.
But the test itself is marked as BROKEN, which is incorrect.
For warnings, we use another function like this:
However, this also does not set the entire test as broken, only the step.
Expected behavior
If a test fails due to a call to expect.fail(...), it should be reported in Allure as FAILED, not BROKEN.


If a test has a known, non-critical issue (e.g., a warning), we want to explicitly mark the test as BROKEN via the reportWarning function.
We need the ability to manually control the final test status (FAILED, BROKEN, PASSED) via our test logic.
Screenshots
Info relevant:
OS: Windows 11
Browser: Chrome
Version: 10.0.22631
wdio/allure version: "@wdio/allure-reporter": "^9.12.6",
"allure-commandline": "^2.29.0",
"allure-js-commons": "^3.1.0",
Additional context
We are using WebdriverIO, TypeScript, and allure-js-commons. We've created custom utilities to standardize test step reporting for errors and warnings, with screenshot attachments and clear status handling.
We consider it a bug that:
Tests that fail explicitly are reported as BROKEN instead of FAILED.
There’s no clean way to programmatically control or override the final test status (FAILED/BROKEN/PASSED) via the Allure API/Documentation/WebdriverIO/Allure.
This issue affects the accuracy of our test reporting and makes it harder to automate quality thresholds based on true test failure states.
Beta Was this translation helpful? Give feedback.
All reactions