test-nextflow-example-script

nextflow-io's avatarfrom nextflow-io

Test a Nextflow script by running it, verifying outputs, testing resume functionality, and comparing results with documentation. Use when validating that example scripts work correctly and match their documentation.

⭐202stars🔀255forks📁View on GitHub🕐Updated Nov 25, 2025

When & Why to Use This Skill

This Claude skill automates the end-to-end validation of Nextflow scripts by executing workflows, verifying output integrity, and ensuring strict alignment with technical documentation. It streamlines the quality assurance process for data pipelines by testing core functionalities like the resume feature, parameter variations, and directory management, providing a comprehensive test report for developers.

Use Cases

  • 1. Documentation Accuracy Auditing: Automatically verify that code examples and expected outputs in READMEs or MkDocs files match the actual behavior of Nextflow scripts.
  • 2. Pipeline Regression Testing: Use the resume functionality test to ensure that workflow changes do not break caching mechanisms and that the pipeline can recover correctly from previous states.
  • 3. Data Integrity Verification: Systematically check that the files generated in the 'work' or 'results' directories match the expected formats and content described in the project specifications.
  • 4. Parameter Sensitivity Analysis: Validate script robustness by running tests with different input parameters to ensure the workflow handles various configurations without failure.
nameTest Nextflow Example Script
descriptionTest a Nextflow script by running it, verifying outputs, testing resume functionality, and comparing results with documentation. Use when validating that example scripts work correctly and match their documentation.

Test Nextflow Example Script

Test a Nextflow example script and verify it matches the documentation.

Working Directory

IMPORTANT: This skill works with directories in two phases:

  1. Initial phase - Start from repository root

    • Repository root is the directory containing mkdocs.yml, docs/, and .github/
    • Verify you are in the correct directory (check for these files/folders)
    • Use this for finding scripts and reading documentation
    • All Grep and Glob operations use repository root paths
  2. Execution phase - Change to the script's directory for running Nextflow

    • Use cd to the script's directory before running nextflow run
    • This ensures relative paths in the script work correctly

After testing, return to repository root or use absolute paths for final documentation checks.

Tasks to Perform

  1. Identify the Script

    • Ask user which script to test (or find recently modified .nf files)
    • Read the script to understand what it does
    • Note any params. definitions for testing
  2. Find Related Documentation

    • Search docs/ for markdown files referencing this script
    • Identify what the documentation claims about outputs and behavior
  3. Run the Script

    • Change to the script's directory
    • Run: nextflow run [script.nf]
    • Capture console output
    • Note the work directory hash
  4. Verify Outputs

    • Check work directory for outputs
    • If publishDir used, check results/ directory
    • Compare actual output files with what documentation describes
    • Verify file contents match expectations
  5. Test with Resume

    • Run: nextflow run [script.nf] -resume
    • Verify processes show as "cached"
    • Confirm work directory hash is reused
  6. Test with Parameters (if applicable)

    • Identify parameters from script
    • Run with different parameter values
    • Verify outputs change appropriately
  7. Compare with Documentation

    • Check console output matches documented examples
    • Verify commands shown in docs are correct
    • Ensure file paths referenced are accurate
    • Confirm expected outputs match reality

Output Format

Provide a comprehensive test report:

# Test Report: [script.nf]

## Script Understanding
- Purpose: [what it does]
- Parameters: [list]
- Expected outputs: [list]

## Test Results

### Basic Run
✓ Script executed successfully
✓ Output files created: [list]
✓ Console output as expected

### Resume Test
✓ All processes cached
✓ Work directory reused

### Parameter Tests
✓ --param1 value: works correctly
[or issues found]

## Documentation Comparison

### Accurate
- Console output examples match
- File paths correct
- Command syntax verified

### Issues Found
- Line 123: Console output shows v25.04 but docs show v24.10
- Example missing --param flag
[or none]

## Recommendations
[Suggested documentation updates or script fixes]

Notes

  • Always run from the script's directory
  • Save work directory paths for verification
  • Test both success and documented failure cases
  • If script doesn't work, report why but don't fail - that's useful information