allure-framework / allure-framework/allure-python

using pytest.mark.parametrize will miss some testcase in report

Open
#778 2 comments 1 reaction 0 assignees View on GitHub
bug theme:core
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.