Skip to content

Commit eb42bc6

Browse files
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

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,9 @@ jobs:
129129
- name: Install minimal stable with clippy and rustfmt
130130
uses: actions-rust-lang/setup-rust-toolchain@v1
131131
- uses: Swatinem/rust-cache@v2
132+
- uses: taiki-e/install-action@nextest
132133
- name: test
133-
run: cargo test --workspace --verbose --all-features -- --skip read_table_version_hdfs
134+
run: cargo nextest run --workspace --all-features -E 'not test(read_table_version_hdfs)'
134135

135136
ffi_test:
136137
runs-on: ${{ matrix.os }}

0 commit comments

Comments
 (0)