Skip to content

Contributor testing matrix

Which tests to run — and how long they usually take — by change type.

Docs-only PRs: ./scripts/check-doc-versions.sh only (~seconds). No Rust/Node required.

Quick reference

Change type Minimum commands Typical time (warm cache) Typical time (cold)
Docs only ./scripts/check-doc-versions.sh < 1 min < 1 min
Single Rust crate cargo test -p <crate> + cargo fmt --all --check 1–5 min 10–30 min
LSP / handlers cargo test -p ontocore-lsp + cargo build -p ontocore-lsp --bins 2–8 min 15–40 min
CLI cargo test -p ontocore-cli + integration tests touching CLI 3–10 min 20–45 min
Extension host cd extension && npm ci && ONTOCORE_LSP_BIN=../target/debug/ontocore-lsp npm test 2–5 min 5–15 min
Webview UI cd extension/webview-ui && npm ci && npm test 1–3 min 3–8 min
Release / wide refactor ./scripts/run-ci-local.sh 15–30 min 30–60+ min

Cold times include first cargo build on a machine without a populated target/ directory.

By subsystem

Rust engine (crates/ontocore-*)

cargo fmt --all --check
cargo clippy -p ontocore-<crate> --all-targets -- -D warnings
cargo test -p ontocore-<crate>

Workspace-wide before merge:

cargo test --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings

Language server

cargo build -p ontocore-lsp --bins
cargo test -p ontocore-lsp
# Optional smoke: tests/lsp_smoke.rs via full workspace tests

Build the LSP binary before extension tests: ONTOCORE_LSP_BIN=../target/debug/ontocore-lsp.

VS Code extension

cargo build -p ontocore-lsp --bins
cd extension && npm ci
ONTOCORE_LSP_BIN=../target/debug/ontocore-lsp npm run compile && npm test

F5 debugging: Extension development · Debugging.

Webview UI

cd extension/webview-ui && npm ci && npm test

Plugins

cargo test -p ontocore-plugin -p ontocore-plugin-naming
./scripts/run-ci-local.sh   # when touching host + reference plugins

Documentation

./scripts/check-doc-versions.sh
pip install -r docs/requirements.txt && ./scripts/build-docs.sh   # optional strict build

Optional dependencies

Tool When required
Java + robot on PATH ROBOT integration tests, ontocore robot manual checks
Node 20 Extension and webview changes
Git repo ontocore diff integration tests

Full CI parity

./scripts/run-ci-local.sh

Matches GitHub Actions — use before release-impacting PRs. See CONTRIBUTING.md.