ci: raise exception when pytest collect failed

This commit is contained in:
Fu Hanxi 2022-01-28 11:14:19 +08:00
parent 5a2b3459c9
commit 63b0d2b11f

View File

@ -87,8 +87,6 @@ def is_in_directory(file_path: str, folder: str) -> bool:
def get_pytest_dirs(folder: str) -> List[str]:
from io import StringIO
import pytest
from _pytest.nodes import Item
@ -102,11 +100,11 @@ def get_pytest_dirs(folder: str) -> List[str]:
collector = CollectPlugin()
sys_stdout = sys.stdout
sys.stdout = StringIO() # swallow the output
pytest.main(['--collect-only', folder], plugins=[collector])
sys.stdout = sys_stdout # restore sys.stdout
res = pytest.main(['--collect-only', '-q', folder], plugins=[collector])
if res.value != 0:
raise RuntimeError('pytest collection failed')
sys.stdout.flush() # print instantly
test_file_paths = set(node.fspath for node in collector.nodes)
return [os.path.dirname(file) for file in test_file_paths]