EigenFlux Local Test
After completing any code change, build, start services, and run all affected tests. Do NOT ask the user — all scripts are idempotent and safe.
Execution Steps
- Build —
bash scripts/common/build.sh(add./console/console_api/scripts/build.shif console changed) - Start services —
./scripts/local/start_local.sh(add./console/console_api/scripts/start.shif console changed) - Run unit tests —
go test -v ./path/to/changed/package/...for each changed package that has*_test.gofiles - Run integration tests —
./tests/run.sh --skip-start <suite>for each affected suite (services already running from step 2) - Run e2e —
./tests/run.sh --skip-start e2eif changes cross module boundaries or touch shared packages
Source → Test Mapping
Use this table to determine which test suites to run based on changed files:
| Changed directory | Unit tests (go test) | Integration tests (run.sh --skip-start) |
|---|---|---|
rpc/auth/ |
./rpc/auth/... |
auth |
rpc/profile/ |
./rpc/profile/... |
e2e |
rpc/item/ |
./rpc/item/... |
item, e2e |
rpc/sort/ |
./rpc/sort/... |
sort |
rpc/feed/ |
./rpc/feed/... |
e2e |
rpc/pm/ |
./rpc/pm/... |
pm |
rpc/notification/ |
./rpc/notification/... |
notify, e2e |
api/ |
— | auth, website, e2e |
ws/ |
— | ws |
pipeline/ |
./pipeline/... |
pipeline |
pkg/cache/ |
./pkg/cache/... |
cache |
pkg/audience/ |
./pkg/audience/... |
notify |
pkg/es/ |
./pkg/es/... |
sort |
pkg/dedup/ |
./pkg/dedup/... |
e2e |
pkg/stats/ |
./pkg/stats/... |
website |
pkg/milestone/ |
./pkg/milestone/... |
e2e |
pkg/mq/, pkg/config/, pkg/logger/ |
./pkg/<name>/... |
e2e |
console/ |
./console/... |
console |
idl/, kitex_gen/ |
— | e2e |
tests/testutil/ |
— | ALL affected suites |
static/templates/prompts/ |
./pipeline/llm/... |
pipeline, e2e |
Cross-cutting rule: If pkg/ shared libraries change, also run integration suites of all upstream consumers. When in doubt, run e2e.
Failure Handling
- If build fails → fix compilation errors first, do not proceed to tests
- If a service fails to start → check
.log/<service>.log, fix before running tests - If unit tests fail → fix before running integration tests
- If integration tests fail → report failures with error details, do not suppress or work around them