Testing helps you catch bugs early and keep your code reliable. This guide covers the main test types used in this project and how to write them. Every functional change needs a test that fails before the change and passes after.
The preferred format is .sqltest because it runs the same test case on multiple backends like the CLI and Rust bindings. Older TCL tests are being phased out. You can convert them using the test runner tool and then check the results.
For complex scenarios use Rust integration tests and for edge cases use fuzz tests. Always write tests first when possible and use in-memory databases for speed. Follow existing patterns and don't invent new formats.
Global
mkdir -p ~/.claude/skills/testingProject
mkdir -p .claude/skills/testingSource Repository
Grill Memattpocock/skills
Stress-test your plan with relentless questions until we both understand
Tddmattpocock/skills
Write one test at a time then code to make it pass
Test Driven Developmentobra/superpowers
Write a failing test first then code just enough to pass
Qamattpocock/skills
Turn bug reports into GitHub issues through natural conversation without technical fuss
Migrate To Shoehornmattpocock/skills
Replace unsafe as assertions with type-safe partial test data easily
Webapp Testinganthropics/skills
Test your local web apps quickly with Playwright automation and screenshots
Playwright Best Practicescurrents-dev/playwright-best-practices-skill
Master Playwright testing with best practices for reliable and fast tests
Google Agents Cli Evalgoogle/agents-cli
Run evaluations on your AI agent, find failures, and improve its quality step by step