SQLite 가 테스트 DB 의 super power
SQLite 가 테스트 setup 거의 공짜. 잘 테스트된 codebase 마다 등장하는 3 전략:
- :memory: per test —
sqlite3.connect(':memory:')open, migration 실행, 테스트 실행, process end 에 DB 사라짐. 가장 빠른 setup. - tempfile per test — :memory: 같은데 file-backed. 코드가 connection close + reopen 해야 할 때 유용.
- shared template + COPY — fixture DB 한 번 빌드, 테스트마다 복사. Migration 비싸면 빠름.
Self-reference: 피파 테스트가 pytest fixture 통해 :memory: 패턴 — 모든 store-level 테스트가 ms 안에 fresh 빈 DB. 100+ 테스트 있는 backend test suite 가 ~2 초 안에 끝나는 이유.