case.list 包含多行腳本名:t1.py、t2.py...,需像批處理一樣順序執行。
import subprocess
import sys
def run_cases(list_file):
with open(list_file, 'r', encoding='utf-8') as f:
for line in f:
script = line.strip()
if not script or script.startswith('#'):
continue
print(f"=== Running {script} ===")
result = subprocess.run([sys.executable, script], capture_output=True, text=True)
print(result.stdout)
if result.stderr:
print("ERROR:", result.stderr, file=sys.stderr)
if result.returncode != 0:
print(f"FAILED: {script} exit code {result.returncode}")
# 可選:break 或 continue
if __name__ == "__main__":
run_cases("case.list")
# 若案例為 pytest 格式
import pytest
pytest.main(["-v", "test_dir/"]) # 自動發現 test_*.py
@echo off
for /f "delims=" %%i in (case.list) do (
echo Running %%i
python %%i
if errorlevel 1 echo FAILED %%i
)