From 342994f77b8cafe7491da19418172463b0e8e5d6 Mon Sep 17 00:00:00 2001 From: hided62 Date: Sat, 29 Aug 2026 04:18:43 +0000 Subject: [PATCH] =?UTF-8?q?=EB=B9=8C=EB=93=9C=EC=99=80=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EA=B0=84=EB=8B=A8=20=EC=B6=9C=EB=A0=A5?= =?UTF-8?q?=EC=9D=84=20=EA=B8=B0=EB=B3=B8=EC=9C=BC=EB=A1=9C=20=EC=A0=84?= =?UTF-8?q?=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 5 +++++ README.md | 6 ++++++ app/game-api/vitest.config.ts | 1 + app/game-engine/vitest.config.ts | 1 + app/gateway-api/vitest.config.ts | 1 + app/release-controller/vitest.config.ts | 1 + docs/testing-policy.md | 8 ++++++++ package.json | 6 ++++-- packages/common/vitest.config.ts | 1 + packages/infra/vitest.config.ts | 1 + packages/logic/vitest.config.ts | 1 + tools/integration-tests/vitest.config.ts | 1 + tools/legacy-db-migration/vitest.config.ts | 1 + turbo.json | 1 + 14 files changed, 33 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 77091bd4..ba5bb87a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -301,6 +301,11 @@ pnpm test pnpm build ``` +루트 `pnpm test`와 `pnpm build`는 간단 출력이 기본입니다. Codex도 일반 검증에는 +이 명령을 사용하고, 실패 진단이나 전체 task 진행이 필요한 경우에만 +`pnpm test-verbose`, `pnpm build-verbose`를 사용해 주세요. 서버 빌드 워커의 +streaming 상세 로그는 관리자 관찰 계약이므로 간단 출력으로 바꾸지 말아 주세요. + - 모든 코드 변경 후 `CI=1 pnpm typecheck`를 실행해 주세요. - package import나 파일 위치를 변경한 뒤 `pnpm check:architecture`를 실행해 주세요. `packages/logic`의 runtime I/O는 `ports/` interface와 app/infra diff --git a/README.md b/README.md index 82b48175..fb29b5b7 100644 --- a/README.md +++ b/README.md @@ -175,6 +175,12 @@ pnpm build pnpm test:integration ``` +루트 `test`와 `build`는 Codex와 일반 개발 검증에서 성공 로그를 줄이는 간단 출력이 +기본입니다. 테스트별 진행과 전체 Turbo task 로그가 필요한 실패 진단에는 +`pnpm test-verbose`, `pnpm build-verbose`를 사용합니다. Gateway 서버 빌드 워커는 +관리자 operation 화면에 진행 상황을 제공하기 위해 별도의 streaming 상세 출력 +정책을 계속 사용합니다. + PostgreSQL·Redis 조건부 suite는 격리된 서비스를 준비한 뒤 실행합니다. ```sh diff --git a/app/game-api/vitest.config.ts b/app/game-api/vitest.config.ts index 9e8e7606..65d867db 100644 --- a/app/game-api/vitest.config.ts +++ b/app/game-api/vitest.config.ts @@ -8,5 +8,6 @@ export default defineConfig({ environment: 'node', globals: true, include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/app/game-engine/vitest.config.ts b/app/game-engine/vitest.config.ts index 6663a846..8afe08a1 100644 --- a/app/game-engine/vitest.config.ts +++ b/app/game-engine/vitest.config.ts @@ -9,6 +9,7 @@ export default defineConfig({ globals: true, include: ['test/**/*.test.ts'], maxWorkers: 4, + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], testTimeout: 10_000, }, }); diff --git a/app/gateway-api/vitest.config.ts b/app/gateway-api/vitest.config.ts index 9e8e7606..65d867db 100644 --- a/app/gateway-api/vitest.config.ts +++ b/app/gateway-api/vitest.config.ts @@ -8,5 +8,6 @@ export default defineConfig({ environment: 'node', globals: true, include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/app/release-controller/vitest.config.ts b/app/release-controller/vitest.config.ts index 60f349b6..08d565f9 100644 --- a/app/release-controller/vitest.config.ts +++ b/app/release-controller/vitest.config.ts @@ -7,5 +7,6 @@ export default defineConfig({ test: { environment: 'node', include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/docs/testing-policy.md b/docs/testing-policy.md index 4b236200..9d031fcd 100644 --- a/docs/testing-policy.md +++ b/docs/testing-policy.md @@ -19,6 +19,14 @@ pnpm test pnpm build ``` +루트 `pnpm test`와 `pnpm build`는 간단 출력이 기본입니다. Turbo는 실패한 task의 +로그를 남기고 성공 task의 본문을 생략하며, Vitest를 package에서 직접 실행할 때도 +`minimal` reporter를 사용합니다. 테스트별 진행과 성공 task 로그까지 필요한 진단은 +각각 `pnpm test-verbose`, `pnpm build-verbose`로 다시 실행합니다. Codex도 일반 +검증에는 간단 출력을 사용하고, 실패 원인에 상세 로그가 필요할 때만 verbose 명령을 +사용합니다. Gateway 서버 빌드 워커의 streaming 로그는 관리자 관찰 계약이므로 이 +로컬 기본값의 영향을 받지 않습니다. + 문서만 변경한 경우에도 Markdown link, Prettier, 생성 문서 일치와 `pnpm docs:build`를 확인합니다. 제품 코드 동작을 바꾸지 않은 문서 작업은 typecheck·unit·Chromium 검증을 실행한 것으로 설명하지 않습니다. diff --git a/package.json b/package.json index 015e70fc..26684de4 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,15 @@ "lint": "turbo lint", "lint:fix": "turbo lint:fix", "format": "prettier --write .", - "test": "turbo test", + "test": "turbo test --ui=stream --output-logs=errors-only", + "test-verbose": "SAMMO_TEST_REPORTER=verbose turbo test --ui=stream --output-logs=full", "test:bootstrap": "pnpm install --offline --frozen-lockfile && pnpm test:prepare", "test:prepare": "pnpm --filter @sammo-ts/infra prisma:generate && pnpm --filter @sammo-ts/common build && pnpm --filter @sammo-ts/logic build && pnpm --filter @sammo-ts/infra build && pnpm --filter @sammo-ts/game-engine build && pnpm --filter @sammo-ts/game-api build && pnpm --filter @sammo-ts/gateway-api build", "test:integration": "pnpm --filter @sammo-ts/integration-tests test:integration", "test:integration:conditional": "./tools/run-conditional-integration.sh", "test:conditional-integration-registry": "node --test tools/check-conditional-integration-files.test.mjs", - "build": "turbo build", + "build": "turbo build --ui=stream --output-logs=errors-only", + "build-verbose": "turbo build --ui=stream --output-logs=full", "typecheck": "turbo typecheck", "tsc7": "node_modules/@typescript/native/bin/tsc", "dev": "turbo dev", diff --git a/packages/common/vitest.config.ts b/packages/common/vitest.config.ts index 5c63f1e5..1f7480a0 100644 --- a/packages/common/vitest.config.ts +++ b/packages/common/vitest.config.ts @@ -5,5 +5,6 @@ export default defineConfig({ environment: 'node', globals: true, include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/packages/infra/vitest.config.ts b/packages/infra/vitest.config.ts index bb6b2926..4ceab9e9 100644 --- a/packages/infra/vitest.config.ts +++ b/packages/infra/vitest.config.ts @@ -12,5 +12,6 @@ export default defineConfig({ // individual tests still create concurrent writers deliberately. fileParallelism: false, include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/packages/logic/vitest.config.ts b/packages/logic/vitest.config.ts index 9e8e7606..65d867db 100644 --- a/packages/logic/vitest.config.ts +++ b/packages/logic/vitest.config.ts @@ -8,5 +8,6 @@ export default defineConfig({ environment: 'node', globals: true, include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/tools/integration-tests/vitest.config.ts b/tools/integration-tests/vitest.config.ts index cb3916fa..2cb510ac 100644 --- a/tools/integration-tests/vitest.config.ts +++ b/tools/integration-tests/vitest.config.ts @@ -10,5 +10,6 @@ export default defineConfig({ include: ['test/**/*.test.ts'], testTimeout: 120_000, fileParallelism: false, + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/tools/legacy-db-migration/vitest.config.ts b/tools/legacy-db-migration/vitest.config.ts index 1cd9eb77..30727f92 100644 --- a/tools/legacy-db-migration/vitest.config.ts +++ b/tools/legacy-db-migration/vitest.config.ts @@ -4,5 +4,6 @@ export default defineConfig({ test: { environment: 'node', include: ['test/**/*.test.ts'], + reporters: [process.env.SAMMO_TEST_REPORTER === 'verbose' ? 'default' : 'minimal'], }, }); diff --git a/turbo.json b/turbo.json index b99ccdb5..945daaac 100644 --- a/turbo.json +++ b/turbo.json @@ -47,6 +47,7 @@ "cache": false }, "test": { + "env": ["SAMMO_TEST_REPORTER"], "cache": true }, "dev": {