Skip to main content

migrate-pytest

Migrate a pytest integration test to the test-loop framework. Use when converting a pytest from pytest/tests/ to a deterministic test-loop test.

Ir para a instalação

Informações da origem

Repositório
near/nearcore
Última atividade na origem
4 de março de 2026 às 21:28
Idioma detectado do SKILL.md
inglês
Estrelas
2.620
Forks
795

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
migrate-pytest
description
Migrate a pytest integration test to the test-loop framework. Use when converting a pytest from pytest/tests/ to a deterministic test-loop test.
argument-hint
<path-to-pytest-file>
allowed-tools
Read, Grep, Glob, Bash, Edit, Write
Migrate a pytest integration test to the test-loop framework. **Target pytest file:** $ARGUMENTS Follow these steps in order: ## 1. Understand the pytest - Read the target pytest file - Identify each distinct test scenario (steps, test methods, or test functions) - For each scenario, write in details: - What is being tested (the behavior under test) - The network topology (how many validators, archival nodes, RPC nodes, observers) - Key configuration (epoch_length, gc settings, archive mode, split storage, etc.) - The sequence of actions (start nodes, wait for blocks, kill/restart, send txs, etc.) - The assertions (what is verified and how) - Present this analysis to the user before proceeding - Write this analysis into `<test_name>_migration.md` in the project root. ## 2. Study the test-loop framework - Read `test-loop-tests/README.md` for the builder API and patterns - Read relevant examples from `test-loop-tests/src/examples/` that are relevant to the pytest being migrated (list available examples with `ls test-loop-tests/src/examples/`) - Browse existing tests in `test-loop-tests/src/tests/` for patterns similar to what the pytest does ## 3. Design the test-loop test For each pytest scenario, decide: - Whether it maps to a separate `#[test]` function or can be combined - The simplest builder API setup that covers the scenario - Which test-loop utilities to use (runners, node accessors, transactions) - Whether any simplification is appropriate (the README says: "it would be _extremely_ hard to migrate the logic precisely. Instead, migrate tests only if they make sense to you") Present the plan to the user and get confirmation before writing code. ## 4. Write the test - Create `test-loop-tests/src/tests/<test_name>.rs` - Follow the instructions in `test-loop-tests/README.md` - Register the module in `test-loop-tests/src/tests/mod.rs` (keep alphabetical order) ## 5. Verify - Run `cargo check --package test-loop-tests --features test_features` to verify compilation - Run each test individually: `cargo test --package test-loop-tests --features test_features -- tests::<module>::<test_name> --exact --show-output` - Fix any compilation errors or test failures - Run `cargo fmt --package test-loop-tests` ## 6. Clean up the pytest - Delete the original pytest file - Remove its entries from `nightly/pytest-sanity.txt` (check for both regular and `--features nightly` variants, and commented-out spice variants) - Search for any other references to the pytest filename ## 7. Summary Report what was done: - Which pytest scenarios were migrated (and any that were intentionally simplified or skipped) - The new test file location and test function names - Approximate runtime comparison if available
Ver no GitHub