mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 12:21:26 -07:00
Run unit tests in isolation w/ coverage support.
This commit is contained in:
parent
d0e1a1c6c3
commit
fcac261eef
5 changed files with 36 additions and 1 deletions
33
test/units/conftest.py
Normal file
33
test/units/conftest.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
"""Monkey patch os._exit when running under coverage so we don't lose coverage data in forks, such as with `pytest --boxed`."""
|
||||
import gc
|
||||
import os
|
||||
|
||||
try:
|
||||
import coverage
|
||||
except ImportError:
|
||||
coverage = None
|
||||
|
||||
|
||||
def pytest_configure():
|
||||
if not coverage:
|
||||
return
|
||||
|
||||
coverage_instances = []
|
||||
|
||||
for obj in gc.get_objects():
|
||||
if isinstance(obj, coverage.Coverage):
|
||||
coverage_instances.append(obj)
|
||||
|
||||
if not coverage_instances:
|
||||
return
|
||||
|
||||
os_exit = os._exit
|
||||
|
||||
def coverage_exit(*args, **kwargs):
|
||||
for instance in coverage_instances:
|
||||
instance.stop()
|
||||
instance.save()
|
||||
|
||||
os_exit(*args, **kwargs)
|
||||
|
||||
os._exit = coverage_exit
|
Loading…
Add table
Add a link
Reference in a new issue