Commit eb42bc6
authored
ci: use cargo-nextest for parallel test execution (#1673)
## What changes are proposed in this pull request?
Replaces `cargo test` with `cargo nextest run` in the CI test job.
### Benchmark results (local, 16-core machine)
| Command | Wall clock time | CPU utilization |
|---------|-----------------|-----------------|
| `cargo test` | **1m 21.9s** | 429% |
| `cargo nextest` | **4.2s** | 1283% |
**~19x faster with nextest**
### Why nextest?
`cargo test` runs tests as threads within a single process per test
binary. With 824 unit tests in the `delta_kernel` lib alone, this limits
parallelism due to thread contention.
`cargo nextest` runs each test as a **separate process**, providing:
- **True parallelism**: Tests run in separate processes across all CPU
cores (1283% CPU utilization vs 429%)
- **Test isolation**: No shared global state between tests
- **Better output**: stdout/stderr captured per-test, shown only on
failure
- **Faster CI**: Better utilization of multi-core runners
### Filter syntax change
- Before: `cargo test -- --skip read_table_version_hdfs`
- After: `cargo nextest run -E 'not test(read_table_version_hdfs)'`
Nextest uses a filter expression syntax instead of `--skip`.
### Note on doc-tests
Nextest doesn't run doc-tests by default. If doc-test coverage is
needed, they can be run separately with `cargo test --doc`. Currently
the workspace has minimal doc-tests (just 1 in uc-client).
## How was this change tested?
Benchmarked locally (results above). CI will validate the workflow runs
successfully.1 parent 71a5096 commit eb42bc6
1 file changed
+2
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| 132 | + | |
132 | 133 | | |
133 | | - | |
| 134 | + | |
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
| |||
0 commit comments