allure-framework / allure-framework/allure3
Allure 3 core ignores historyId supplied in Allure result files
- Dominant language
- HTML
- Stars
- 401
- Forks
- 58
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 34
Description
Allure 3 reads the historyId from an Allure-compatible *-result.json file, but core subsequently discards it and recalculates another value from the test case ID and parameters.
This means integrations that calculate or manually override historyId cannot control history and retry grouping.
See https://github.com/allure-framework/allure3/blob/8d46218c90f93442ffaf86ee3ca5f026f1c590d3/packages/core/src/store/convert.ts#L86
The documentation describes historyId as a property stored in the result file and says that framework integrations calculate it:
https://allurereport.org/docs/history-and-retries/
> The history ID is automatically calculated by your framework's Allure integration. With some limitations and exceptions, discussed in the linked article, each integration assigns the history ID based on two factors:
>
> the test's fully-qualified name,
> the test's non-excluded [parameters](https://allurereport.org/docs/v3/readability/#parametrized-tests).
>
> https://allurereport.org/docs/how-it-works-test-result-file/#historyid-string
For context is I am writing a custom integration and generating the results.json files and historyids based on labels used for sorting and filtering. The generated historyId is ignroed and historyID calculated only from parameters. I can work around this by adding the labels as parameters as well, but it seems like there is currenrly no point in an integration calculculating it's own historyId for each results.json if it will always be calculated based on the test name and non-excluded parameters.
Contributor guide
Research direction
Start in packages/core/src/store/convert.ts at the linked line and trace how historyId is read from an Allure result file and later converted. Use the historyId documentation and a result JSON with a custom value to verify that report history and retry grouping honor the supplied value instead of recalculating it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 75/100