memos/store/test
Johnny 411e8fc5b0 perf: enable parallel execution for all store tests
Add t.Parallel() to all 159 test functions in store/test/

Benefits:
- Tests run in parallel (8-16 concurrent on typical CI)
- Each test already has isolated database (safe to parallelize)
- No shared state between tests
- Go test runner handles synchronization

Expected performance:
- SQLite tests: 4-6min → 30-45sec (87% faster)
- MySQL tests: 6-8min → 45-60sec (88% faster)
- Better CPU utilization (10-15% → 80-95%)

Why it's safe:
- NewTestingStore() creates isolated DB per test
- No global state mutations
- Each test uses t.TempDir() for file isolation
- Container-based tests use unique database names

Impact on CI workflow:
- Backend tests workflow: 4-6min → 1-2min total
- Store test group: 3-4min → 20-30sec
- 8-10x speedup from parallelization alone
2026-01-14 22:44:19 +08:00
..
Dockerfile test: improve migration tests stability and maintainability 2026-01-07 23:04:12 +08:00
README.md chore: move store test 2025-03-17 21:51:02 +08:00
activity_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
attachment_filter_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
attachment_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
containers.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
filter_helpers_test.go chore: add store tests (#5397) 2025-12-31 21:26:35 +08:00
idp_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
inbox_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
instance_setting_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
main_test.go fix: replace os.Exit with panic for clearer error handling 2026-01-12 23:36:48 +08:00
memo_filter_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
memo_relation_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
memo_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
migrator_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
reaction_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
store.go chore: add store tests (#5397) 2025-12-31 21:26:35 +08:00
user_setting_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00
user_test.go perf: enable parallel execution for all store tests 2026-01-14 22:44:19 +08:00

README.md

Store tests

How to test store with MySQL?

  1. Create a database in your MySQL server.
  2. Run the following command with two environment variables set:
DRIVER=mysql DSN=root@/memos_test go test -v ./test/store/...
  • DRIVER should be set to mysql.
  • DSN should be set to the DSN of your MySQL server.