allure-framework / allure-framework/allure-python

bug: When the check is placed in the parent step and the child step asserts, the check becomes invalid.

Aperta
#824 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
814
Fork
260
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

[//]: # (
. Note: for support questions, please use Stackoverflow or Gitter**.
. This repository's issues are reserved for feature requests and bug reports.
.
. In case of any problems with Allure Jenkins plugin** please use the following repository
. to create an issue: https://github.com/jenkinsci/allure-plugin/issues
.
. Make sure you have a clear name for your issue. The name should start with a capital
. letter and no dot is required in the end of the sentence. An example of good issue names:
.
. - The report is broken in IE11
. - Add an ability to disable default plugins
. - Support emoji in test descriptions
)

#### I'm submitting a ...
- [x] bug report
- [x] feature request
- [ ] support request => Please do not submit support request here, see note at the top of this template.

#### What is the current behavior?

```python
def validate_something(a, b, c, d):
with check, allure.step(f'some assertions'):
with allure.step('aa'):
assert a == 1
with allure.step('b'):
assert b == 2
with allure.step('cccc'):
assert c == 13
with allure.step('dddd'):
assert d == 4

def test_22():
with check, allure.step("setup step"):
assert 5 == 5
validate_something(1,2,3,4)
```
As above, the test report is:

![image](https://github.com/user-attachments/assets/afd66464-b100-4134-aee1-f3b9e15fab35)

the step dddd won't be executed, the effect of pytest-check is gone

#### If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
copy the code above

PS:
if run, the step [some assertions] won't be marked as failed, but pass, and the four sub-steps will be executed, I hope if any sub step is failed, the parent should be failed:
```python
def validate_something(a, b, c, d):
with allure.step(f'some assertions'):
with check, allure.step('aa'):
assert a == 1
with check, allure.step('b'):
assert b == 2
with check, allure.step('cccc'):
assert c == 13
with check, allure.step('dddd'):
assert d == 4

def test_22():
with check, allure.step("setup step"):
assert 5 == 5
validate_something(1,2,3,4)
```

main.py run pytest (allure) and get the allure report

#### What is the expected behavior?
step dddd should be executed

#### What is the motivation / use case for changing the behavior?

#### Please tell us about your environment:

- Allure version: 2.13.5
- Test framework: pytest@8.2.2
- pytest-check: 2.3.1
- Allure adaptor: allure-pytest@2.13.5

#### Other information

[//]: # (
. e.g. detailed explanation, stacktraces, related issues, suggestions
. how to fix, links for us to have more context, eg. Stackoverflow, Gitter etc
)

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con la riproduzione Python nell’issue, usando main.py ed eseguendo pytest con le versioni indicate di Allure e pytest-check. Traccia il modo in cui il contesto di check esterno interagisce con i blocchi allure.step annidati. Il lavoro è completato quando lo step dddd viene eseguito dopo un precedente errore di assertion e lo step padre some assertions viene contrassegnato come fallito quando un’assertion figlia fallisce.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
testing
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.