Sfoglia il codice sorgente

ci: raise exception when pytest collect failed

Fu Hanxi 4 anni fa
parent
commit
63b0d2b11f
1 ha cambiato i file con 4 aggiunte e 6 eliminazioni
  1. 4 6
      tools/ci/idf_ci_utils.py

+ 4 - 6
tools/ci/idf_ci_utils.py

@@ -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]