summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/_pytest/runner.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/_pytest/runner.py b/src/_pytest/runner.py
index b25438c23..c221b42a0 100644
--- a/src/_pytest/runner.py
+++ b/src/_pytest/runner.py
@@ -446,6 +446,7 @@ class SetupState:
try:
colitem = self.stack.pop()
finalizers = self._finalizers.pop(colitem)
+ finalizers.insert(0, colitem.teardown)
inner_exc = None
while finalizers:
fin = finalizers.pop()
@@ -456,11 +457,10 @@ class SetupState:
# ideally all should be reported.
if inner_exc is None:
inner_exc = e
- if inner_exc:
- raise inner_exc
- colitem.teardown()
for colitem in self._finalizers:
assert colitem in self.stack
+ if inner_exc:
+ raise inner_exc
except TEST_OUTCOME as e:
# XXX Only first exception will be seen by user,
# ideally all should be reported.