smithery/cjprybol

test-stages

Staged test organization and testing guidelines for Mycelia

Installation

$ npx skills add smithery/cjprybol --skill test-stages

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/cjprybol.

npx skills add smithery/cjprybol

Browse all from smithery/cjprybol

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,373 B
  • docs SUMMARY.md 78 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Mycelia Test Stage Organization

The test suite is tiered by workflow stage.

Test Stage Directories

  1. test/1dataacquisition/ - Data loading and acquisition
  2. test/2preprocessingqc/ - Quality control and preprocessing
  3. test/3featureextraction_kmer/ - K-mer analysis and feature extraction
  4. test/4_assembly/ - Assembly algorithms
  5. test/5_validation/ - Validation and verification
  6. test/6_annotation/ - Annotation workflows
  7. test/7comparativepangenomics/ - Comparative and pangenomic analysis
  8. test/8toolintegration/ - External tool integration

Additional directories:

  • test/in_development/ - Opt-in experimental tests
  • test/deprecated/ - Legacy tests (do not use)

Adding New Tests

  1. Place tests in the relevant stage directory
  2. Name files after the feature (e.g., assembly_merging.jl)
  3. Use Test.@testset with descriptive labels
  4. Use small fixtures from assemblytestdata/
  5. Use StableRNGs for deterministic seeds

Example:

import Test
import StableRNGs

Test.@testset "Assembly Merging" begin
    rng = StableRNGs.StableRNG(42)
    # Test code with deterministic randomness
end

Test Commands

# Core tests (Aqua + optional JET)
julia --project=. -e "import Pkg; Pkg.test()"

# Full pipeline tests
MYCELIA_RUN_ALL=true julia --project=. -e "import Pkg; Pkg.test()"

# External tool tests
MYCELIA_RUN_EXTERNAL=true julia --project=. -e "import Pkg; Pkg.test()"

# Coverage (disable precompilation for accurate line hits)
MYCELIA_RUN_ALL=true MYCELIA_RUN_EXTERNAL=true \
  julia --project=. --compiled-modules=no -e "import Pkg; Pkg.test(coverage=true)"

# Static analysis
julia --project=. test/jet.jl

Testing Rules

  • NEVER disable tests because functionality is broken - fix the implementation first
  • Use Test.@test_skip ONLY for explicitly planned but unimplemented features
  • When debugging tests gated by environment flags (for example MYCELIARUNEXTERNAL), enable them by default unless the user explicitly opts out
  • External tool tests must run with MYCELIARUNEXTERNAL=true without extra flags
  • Use simulated inputs and default database paths where possible
  • Extended tutorials/benchmarks are opt-in; note runtime or external-tool requirements