-
Notifications
You must be signed in to change notification settings - Fork 94
Open
Description
Description
When using the pytest-rerunfailures
plugin and marking a test as "flaky", the pytest_runtest_logreport
-hook is only called for the last occurrence of a "teardown" despite it still being run (evident in the output below).
pip list
Package | Version |
---|---|
exceptiongroup | 1.1.3 |
iniconfig | 2.0.0 |
packaging | 23.2 |
pip | 21.2.4 |
pluggy | 1.3.0 |
pytest | 7.4.2 |
pytest-rerunfailures | 12.0 |
setuptools | 58.1.0 |
tomli | 2.0.1 |
Python: 3.9.10
OS: osx 12.3 (M1 MacBook Pro)
Example:
# conftest.py
import pytest
@pytest.hookimpl(trylast=True)
def pytest_runtest_logreport(report):
print("\nWHEN: ", report.when)
# test_reportlog.py
import pytest
@pytest.fixture
def fix():
assert True
yield
print("\nTEARDOWN CALLED")
assert True
@pytest.mark.flaky(reruns=1)
def test_logreport(fix):
assert False
Output:
$ pytest -s
============================= test session starts ==============================
platform darwin -- Python 3.9.10, pytest-7.4.2, pluggy-1.3.0
rootdir: /Users/itsme/dev/pytest-logreport-rerunfailure
plugins: rerunfailures-12.0
collected 1 item
test_reportlog.py
TEARDOWN CALLED
WHEN: setup
R
WHEN: call
TEARDOWN CALLED
WHEN: setup
F
WHEN: call
WHEN: teardown
=================================== FAILURES ===================================
________________________________ test_logreport ________________________________
fix = None
@pytest.mark.flaky(reruns=1)
def test_logreport(fix):
> assert False
E assert False
test_reportlog.py:12: AssertionError
=========================== short test summary info ============================
FAILED test_reportlog.py::test_logreport - assert False
========================== 1 failed, 1 rerun in 0.02s ==========================
- a detailed description of the bug or problem you are having
- output of
pip list
from the virtual environment you are using - pytest and operating system versions
- minimal example if possible
Mogost
Metadata
Metadata
Assignees
Labels
No labels