test

star 17

Runs tests for the GenVM project. Use after making code changes to verify correctness.

genlayerlabs By genlayerlabs schedule Updated 6/3/2026

name: test description: Runs tests for the GenVM project. Use after making code changes to verify correctness.

Running Tests

GenVM uses ya-test-runner for all tests. Before running tests, ensure the project is built (see /build skill).

Quick Start

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 Commands

Run Tests

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 Information

# 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

Test Presets

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

Test Categories

Integration Tests (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

Rust Tests

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

Python Tests

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.

Webdriver Setup

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

Precompile (Optional)

If WASM files or compilation changed, precompile to save test time:

./build/out/bin/genvm precompile

Re-running Failed Tests

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

Quick Reference

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
Install via CLI
npx skills add https://github.com/genlayerlabs/genvm --skill test
Repository Details
star Stars 17
call_split Forks 9
navigation Branch main
article Path SKILL.md
More from Creator
genlayerlabs
genlayerlabs Explore all skills →