一键导入
test
Runs tests for the GenVM project. Use after making code changes to verify correctness.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Runs tests for the GenVM project. Use after making code changes to verify correctness.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
GenVM commit message conventions. Use when writing a commit message, squashing/merging a PR, or amending history. Covers the `type(scope): summary <emoji>` format, the five types, the standard scope set, the gitmoji suffix, and mistakes to avoid (typos, vague "fix CI N").
Builds the GenVM project. Use after making code changes to compile Rust binaries.
Read this BEFORE trying to fix a GenVM build that fails on macOS. GenVM is NOT built natively on macOS — building from source on Darwin breaks the deterministic runner-artifact invariant. Use a remote Linux nix-builder instead. Triggers on any build/nix/runner/linker/ar failure on a Mac (Apple Silicon or Intel).
Add RST docstrings to public Python methods/classes. Use when asked to document Python code.
GenVM Rust test conventions and style. Use when writing, adding, or modifying Rust tests — inline `#[cfg(test)] mod tests`, integration tests under a crate's `tests/`, helpers, assertions, and how `ya-test-runner` discovers them.
Sets up the development environment for GenVM repository. Use when setting up the repo for the first time or when dependencies need to be refreshed.
| name | test |
| description | Runs tests for the GenVM project. Use after making code changes to verify correctness. |
GenVM uses ya-test-runner for all tests. Before running tests, ensure the project is built (see /build skill).
Run all tests:
nix develop .#mock-tests --command ya-test-runner run
Run release tests (stable integration):
nix develop .#mock-tests --command ya-test-runner run --filter-tag "$(cat tests/presets/release.txt)"
Run a specific test:
nix develop .#mock-tests --command ya-test-runner run --filter-name 'test_name'
ya-test-runner run [OPTIONS]
Options:
| Flag | Description |
|---|---|
--filter-name REGEX | Filter tests by name regex |
--filter-tag EXPR | Filter tests by tags (e.g., stable & !slow) |
--filter-continue FILE | Re-run only tests from a continue file |
--fail-fast | Stop execution after first failure |
--coverage | Enable coverage collection for Rust tests |
--log-level LEVEL | Set log level (trace/debug/info/warning/error) |
# Show available tests
ya-test-runner show test
# Show execution plan
ya-test-runner show plan
# Show available services
ya-test-runner show services
# Show available tags
ya-test-runner show tags
Presets are tag expressions stored in tests/presets/:
| Preset | Expression | Use Case |
|---|---|---|
release.txt | integration & stable | CI release tests |
rust.txt | rust | integration | Rust development |
python.txt | python | Python SDK tests |
Usage:
ya-test-runner --filter-tag "$(cat tests/presets/release.txt)" run
tests/cases/)End-to-end tests using jsonnet configuration. Services (manager, modules, webdriver) are started automatically.
nix develop .#mock-tests --command ya-test-runner run --filter-tag integration
Cargo tests for Rust crates:
nix develop .#rust-test --command ya-test-runner run --filter-tag rust
With coverage:
nix develop .#rust-test --command ya-test-runner run --filter-tag rust --coverage
Tests for the Python standard library (genlayer-py-std):
nix develop .#mock-tests --command ya-test-runner run --filter-tag python
Or directly with pytest inside nix develop:
nix develop .#mock-tests --command bash -c "cd runners/genlayer-py-std && poetry run pytest tests/"
Coverage: pytest is configured with --cov and --cov-fail-under=75. Coverage scope includes genlayer.types, genlayer.calldata, genlayer.storage, genlayer.evm, genlayer._internal, and genlayer_embeddings. Must run inside nix develop for numpy-dependent tests and correct coverage resolution.
For web-related tests (semi-stable/unstable), webdriver is started automatically by ya-test-runner. To manually start it:
bash modules/webdriver/build-and-run.sh
If WASM files or compilation changed, precompile to save test time:
./build/out/bin/genvm precompile
When tests fail, ya-test-runner writes failed test names to build/test-artifacts/continue/<timestamp>-<random>. Re-run only failed tests:
# Use filename shown in failure summary
ya-test-runner run --filter-continue 20260123-143052-abc123
| What to test | Command |
|---|---|
| All tests | nix develop .#mock-tests --command ya-test-runner run |
| Release tests | nix develop .#mock-tests --command ya-test-runner run --filter-tag "$(cat tests/presets/release.txt)" |
| Rust tests | nix develop .#rust-test --command ya-test-runner run --filter-tag rust |
| Python (poetry) | nix develop .#mock-tests --command bash -c "cd runners/genlayer-py-std && poetry run pytest tests/" |
| Re-run failed | ya-test-runner run --filter-continue <file> |
| With debug logs | nix develop .#mock-tests --command ya-test-runner run --log-level debug |
| Show test list | nix develop .#mock-tests --command ya-test-runner show test |