Commit b6e59cf
fix: Parallel unit test runner with file-level subprocess isolation (#3285)
* fix: parallel unit test runner with file-level subprocess isolation
- Rewrite test/run_all_test.py as file-level parallel runner using
ThreadPoolExecutor with configurable workers (NEXENT_PYTEST_WORKERS)
and per-file timeout (NEXENT_PYTEST_FILE_TIMEOUT)
- Add pytest-xdist to backend test extras
- Fix test_mcp_service.py: clear proxy env vars (socks://) in fixture
to prevent httpx.AsyncClient ValueError
- Fix test_remote_mcp_service.py: mock check_runtime_host_port_available
to prevent port conflict in container enable test
- Fix test_openai_llm.py: reduce memory leak from repeated module imports
- Update CI workflow: default to parallel mode, add dispatch inputs for
worker count and per-file timeout
Serial: 229/229 pass (7m7s). Parallel: 229/229 pass (1m1s, ~7x speedup).
* chore: remove unused pytest-xdist dependency
The parallel runner uses ThreadPoolExecutor with per-file subprocess
isolation, not pytest-xdist. The xdist package was added but never
used due to sys.modules mock conflicts during pytest collection.
---------
Co-authored-by: Jinglong Wang <wangjinglong8@huawei.com>1 parent 068b418 commit b6e59cf
5 files changed
Lines changed: 286 additions & 492 deletions
File tree
- .github/workflows
- test
- backend/services
- sdk/core/models
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
14 | 22 | | |
15 | 23 | | |
16 | 24 | | |
| |||
49 | 57 | | |
50 | 58 | | |
51 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
52 | 63 | | |
53 | 64 | | |
54 | 65 | | |
55 | 66 | | |
56 | 67 | | |
57 | | - | |
| 68 | + | |
58 | 69 | | |
59 | | - | |
| 70 | + | |
60 | 71 | | |
61 | 72 | | |
62 | 73 | | |
63 | | - | |
64 | 74 | | |
65 | | - | |
| 75 | + | |
66 | 76 | | |
67 | 77 | | |
68 | | - | |
| 78 | + | |
69 | 79 | | |
70 | 80 | | |
71 | 81 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
161 | 169 | | |
162 | 170 | | |
163 | 171 | | |
164 | 172 | | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
165 | 178 | | |
166 | 179 | | |
167 | 180 | | |
| |||
182 | 195 | | |
183 | 196 | | |
184 | 197 | | |
| 198 | + | |
| 199 | + | |
185 | 200 | | |
186 | 201 | | |
187 | 202 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
526 | 526 | | |
527 | 527 | | |
528 | 528 | | |
| 529 | + | |
529 | 530 | | |
530 | 531 | | |
531 | 532 | | |
532 | 533 | | |
533 | 534 | | |
534 | 535 | | |
535 | 536 | | |
536 | | - | |
| 537 | + | |
537 | 538 | | |
538 | 539 | | |
539 | 540 | | |
| |||
0 commit comments