allure-framework / allure-framework/allure-python
using pytest.mark.parametrize will miss some testcase in report
- Dominant language
- Python
- Stars
- 814
- Forks
- 260
- PR merge metrics
- No merged PRs in 30d
Description
#### I'm submitting a ...
- [x] bug report
- [ ] feature request
- [ ] support request => Please do not submit support request here, see note at the top of this template.
#### What is the current behavior?
when i use `pytest.mark.parametrize` ,in specific data situations, i got same historyId for two diffent testcase, when report cameout, only one of two testcase show in report.
#### If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Code to repeat :
```python
data = [
["", "admin", 12345],
["admin", "", 12345],
]
@pytest.mark.parametrize("name, account, phone_number", data)
def test_add_member(name, account, phone_number):
print(name, account, phone_number)
```
#### What is the expected behavior?
expected got 2 testcase in report
#### What is the motivation / use case for changing the behavior?
#### Please tell us about your environment:
- Allure version: 2.19.0
- Test framework: pytest@7.2.2
- Allure adaptor: allure-pytest@2.13.2
#### Other information
Becourse in `allure_pytest.util.get_history_id`, only use values in original_values to generate historyId
Maybe use both name and value will solve the problem
Contributor guide
Research direction
Start in allure_pytest.util.get_history_id and reproduce the issue with the two parametrized cases shown in the report. Check how original_values are used to generate historyId. Done means both distinct testcases appear in the Allure report with separate history IDs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100