diff --git a/_pytest/hookspec.py b/_pytest/hookspec.py index 99ae77d55..a2f3d6024 100644 --- a/_pytest/hookspec.py +++ b/_pytest/hookspec.py @@ -79,6 +79,9 @@ def pytest_collect_file(path, parent): def pytest_collectstart(collector): """ collector starts collecting. """ +def pytest_after_initial_collect(collector): + """ after the initial file system walk before genitems""" + def pytest_itemcollected(item): """ we just collected a test item. """ diff --git a/_pytest/main.py b/_pytest/main.py index f73ff597a..9769f4a2d 100644 --- a/_pytest/main.py +++ b/_pytest/main.py @@ -386,7 +386,10 @@ class Session(FSCollector): self._initialparts.append(parts) self._initialpaths.add(parts[0]) self.ihook.pytest_collectstart(collector=self) - rep = self.ihook.pytest_make_collect_report(collector=self) + try: + rep = self.ihook.pytest_make_collect_report(collector=self) + finally: + self.ihook.pytest_after_initial_collect(collector=self) self.ihook.pytest_collectreport(report=rep) self.trace.root.indent -= 1 if self._notfound: