メインコンテンツまでスキップ

テストと確認コマンド

まず変更箇所に近いテストを実行し、API契約やDBを変えた場合は利用側まで確認します。すべてのテストが同じ実行環境で動くわけではありません。

どれを実行するか

すべてリポジトリルートからのコマンドです。

変更箇所確認コマンド前提
TypeScriptの共有契約npm run typechecknpm ci 済み
画面npm run lint / npm run test:web / npm run buildNode.js
APInpm run test:apiNode.jsとWorkersのテスト実行環境
DB定義npm run db:check / npm run db:verify生成したmigration
UIの操作と見た目npm run test:storybook / npm run build:storybookChromium
文書npm run build:docsNode.js

npm test はAPIとフロントエンドのテストを実行します。PythonとStorybookのテストは別コマンドです。

APIの単体テストを絞る

npm run test:unit --workspace @videoq/api -- test/rag-agent.test.ts

APIの通常の test は、単体テストの後にWorkers環境のテストも実行します。Workers側だけなら次のコマンドです。

npm run test:workers --workspace @videoq/api

DB統合テスト

一部のテストは実際のPostgreSQLとpgvectorを使います。QUOTA_TEST_DATABASE_URL を指定しない場合にスキップされるテストがあるため、単体テストの成功だけでDBの挙動まで確認できたとは判断しません。

QUOTA_TEST_DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:55432/postgres npm run test:api

上記は標準ローカル接続先の例です。検証用DBだけを指定してください。 テストによってDB・スキーマを作成して後片付けするため、接続ユーザーにはテストDBの作成権限も必要です。

画面・Storybook

特定のフックを確認する例です。

npm test --workspace @videoq/web -- src/hooks/__tests__/useTags.test.ts

Storybookの操作テストには、先にChromiumを導入します。

npm exec --workspace @videoq/web -- playwright install chromium
npm run test:storybook

画面遷移や親レイアウトを変更した場合は src/__tests__/App.navigation.test.tsxApplication/Navigation のStoryも確認します。

Python worker

Python 3.12以上で、専用の仮想環境を作ります。次のコマンドだけは apps/worker/ に移動して実行します。

cd apps/worker
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest tests/ -q

DBを使うworkerテストには、テスト用の DATABASE_URL が必要です。個別のテストの前提も確認してください。

実モデルを使うテスト

通常のCIとは別に、モデルが検索ツールを適切に選ぶかを確認するテストがあります。

RAG_SELECTION_LIVE=1 npm run test:unit --workspace @videoq/api -- test/rag-agent-selection.live.test.ts

これはOpenAI互換APIへ実際に接続し、利用料金が発生します。OPENAI_API_KEYOPENAI_BASE_URLLLM_MODEL は環境変数またはAPIの .dev.vars から読みます。初回参加時の必須手順ではありません。

関連: 最初の変更困ったとき