From jmchilton
Run Galaxy backend tests (API, integration, framework, framework-workflows) with auto-started test server
npx claudepluginhub jmchilton/claude-jmchilton-plugins --plugin jmchiltonThis skill is limited to using the following tools:
Run Galaxy backend tests. Unlike playwright/selenium tests, these don't need a pre-running server - the test harness starts one automatically.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Run Galaxy backend tests. Unlike playwright/selenium tests, these don't need a pre-running server - the test harness starts one automatically.
/galaxy-backend-tests <test_type> [test_path] [extra_args...]
Test types:
-api - API tests in lib/galaxy_test/api-integration - Integration tests in test/integration-framework - Framework tool tests in test/functional/tools-framework-workflows - Workflow evaluation tests-cwl - CWL conformance API testsExamples:
/galaxy-backend-tests -api - run all API tests/galaxy-backend-tests -api lib/galaxy_test/api/test_tools.py::TestToolsApi::test_map_over_with_output_format_actions - specific API test/galaxy-backend-tests -integration test/integration/test_vault.py - specific integration test/galaxy-backend-tests -framework -id collection_paired - framework test by tool id/galaxy-backend-tests -framework-workflows -id test_subworkflow_simple - single workflow framework testBefore running tests, verify:
Virtualenv exists at .venv/
test -d .venv && echo "EXISTS" || echo "MISSING"/galaxy-bootstrap skill to set it upGalaxy root detection
run_tests.sh and lib/galaxy_test/)test -f run_tests.sh && test -d lib/galaxy_test && echo "OK" || echo "NOT GALAXY ROOT"GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=true \
GALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true \
./run_tests.sh $ARGUMENTS
The $ARGUMENTS is the full argument string from the user (e.g., -api lib/galaxy_test/api/test_tools.py::TestToolsApi).
Default environment variables — always set these unless the user explicitly asks for a default configuration without them:
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false — prevents unnecessary Conda download/install (see Conda Exception)GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=true — enables beta workflow modules for broader test coverageGALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true — enables beta tool formats for broader test coveragerun_tests.sh handles:
common_startup.sh (deps, client build skip)GALAXY_TEST_TOOL_CONF appropriately per test typeFor API tests:
source .venv/bin/activate
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=true \
GALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true \
GALAXY_TEST_TOOL_CONF="lib/galaxy/config/sample/tool_conf.xml.sample,test/functional/tools/sample_tool_conf.xml" \
pytest lib/galaxy_test/api/$TEST_PATH -v --tb=short
For integration tests:
source .venv/bin/activate
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=true \
GALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true \
GALAXY_TEST_TOOL_CONF="lib/galaxy/config/sample/tool_conf.xml.sample,test/functional/tools/sample_tool_conf.xml" \
pytest test/integration/$TEST_PATH -v --tb=short
For framework tests:
source .venv/bin/activate
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=true \
GALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true \
GALAXY_TEST_TOOL_CONF="test/functional/tools/sample_tool_conf.xml" \
pytest test/functional/test_toolbox_pytest.py -k $TOOL_ID -m tool -v --tb=short
For framework workflow tests:
source .venv/bin/activate
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=true \
GALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true \
pytest lib/galaxy_test/workflow/test_framework_workflows.py -k $WORKFLOW_ID -m workflow -v --tb=short
Note: When using pytest directly, a new Galaxy instance is created per test class (run_tests.sh optimizes to share one instance).
These can be appended as extra arguments:
| Option | Effect |
|---|---|
--skip-common-startup | Skip common_startup.sh if already run recently |
--skip-venv | Don't create/activate .venv |
--no_cleanup | Keep temp files after tests |
--verbose_errors | More verbose error reporting |
--debug | Drop into pdb on failure |
--skip_flakey_fails | Skip tests annotated @flakey on error |
| Variable | Purpose |
|---|---|
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT | Set false (default for this skill). Only omit for conda resolver tests |
GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES | Set true (default for this skill). Enables beta workflow modules |
GALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS | Set true (default for this skill). Enables beta tool formats |
GALAXY_TEST_DBURI | Database connection string (default: temp sqlite) |
GALAXY_TEST_NO_CLEANUP | Keep test directories after run |
GALAXY_TEST_VERBOSE_ERRORS | Verbose error output |
GALAXY_TEST_DEFAULT_WAIT | Max wait for tool test (default 86400s) |
GALAXY_TEST_FILE_DIR | Test data sources |
GALAXY_TEST_JOB_CONFIG_FILE | Custom job config for test |
GALAXY_TEST_HOST | Host for test Galaxy server |
GALAXY_TEST_PORT | Port for test Galaxy server |
GALAXY_TEST_SKIP_FLAKEY_TESTS_ON_ERROR | Skip flakey tests on error |
run_tests.sh).venv exists, if not run /galaxy-bootstrapGALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false (omit only for conda resolver tests — see Conda Exception)GALAXY_CONFIG_ENABLE_BETA_WORKFLOW_MODULES=trueGALAXY_CONFIG_OVERRIDE_ENABLE_BETA_TOOL_FORMATS=true./run_tests.sh with the provided arguments| Type | Directory |
|---|---|
| API | lib/galaxy_test/api/ |
| CWL | lib/galaxy_test/api/cwl/ |
| Integration | test/integration/ |
| Framework tools | test/functional/tools/ (config), test/functional/test_toolbox_pytest.py (runner) |
| Framework workflows | lib/galaxy_test/workflow/test_framework_workflows.py |
By default, always set GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false. Galaxy defaults conda_auto_init=true when running from source, which triggers automatic Conda download/install — wasted time for tests that don't exercise conda.
Only omit this override (allowing conda auto-init) for tests that specifically exercise conda dependency resolution:
test/integration/test_resolvers.pytest/integration/test_container_resolvers.pyIf unsure whether a test needs conda, set it to false — tests that genuinely need it will have conda_auto_init = True in their class-level Galaxy config overrides.
--skip-common-startup to save time if you've run tests recently and deps haven't changed-framework -id <tool_id>GALAXY_TEST_USE_HIERARCHICAL_OBJECT_STORE=True by default via run_tests.sh