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

開発認証情報 — すべてのテストに1つのファイル

テストスイートが必要とするすべての認証情報は単一のgitignoreされたファイルに配置されます:secrets/dev-credentials.local.json。コミットされたテンプレートをコピーしてあなたが持つものを埋めます — 各値はオプションであり、欠落している値を必要とするテストは正常にスキップします。

mkdir -p secrets
cp dev-credentials.example.json secrets/dev-credentials.local.json
# edit secrets/dev-credentials.local.json

各テスト層が読み取るもの​

層必要送信元
ユニット(tests/UnitTests)nothing— 决定的、ネットワークなし、シークレットなし
統合(tests/IntegrationTests)PostgresTestcontainers(Docker) — 自動
ライブコピー(tests/IntegrationTests/CopyLive)OpenAPI app + トークンキャッシュOpenApi.App、OpenApi.Tokens
E2Eオンボーディング(tests/E2ETests/CopyLive)OpenAPI app + cIDログインOpenApi.App、OpenApi.Cids
E2Eリアルrun/backtest(CBotRealRunBacktestTests)cIDログイン + デモアカウント番号OpenApi.Cids[].{Username,Password,Accounts}
AI機能AnthropicキーAi.ApiKey(未設定 ⇒ AI機能が無効を返し、 appは引き続き実行)
Live economic-calendar sources (tests/IntegrationTests/Calendar/CalendarSourceLiveTests)FRED / BLS API keysCalendar.FredApiKey, Calendar.BlsApiKey (unset ⇒ that source's live test skips; the keyless central-bank schedule still works)

スキーマ​

dev-credentials.example.jsonをrepo root参照。セクション:

  • OpenApi.App — { ClientId, ClientSecret }のcTrader Open APIアプリケーション。

  • OpenApi.Cids — ヘッドレスOAuthオンボーディングで使用されるcTrader IDログイン。各エントリは**Accounts**配列 — そのcIDの下でのcTraderトレーディングアカウント番号(ログイン/アカウント番号、例: 3635817)、テストインフラストラクチャがリンクして駆動できるアカウント。CBotRealRunBacktestTestsは非空Accounts配列を持つ最初のエントリを読み取り、そのcID + アカウントをアプリに追加し、次にそれに対して実際にcBotを実行してバックテストします。ここにデモアカウント番号のみを置いてください — 決して本番アカウント; run/backtestテストはあなたがリストするすべてのアカウントに実際の注文を配置します。空/省略Accounts ⇒ リアルrun/backtestテストは正常にスキップ。

  • OpenApi.Tokens — 承認されたcIDごと(refresh/accessトークン + アカウントリスト付き)のマルチcIDトークンキャッシュ。オンボーディングとトークンリフレッシュステップによって自動的に書き込まれます;あなたが編集することはほとんどありません。

  • Owner — E2E下のアプリのシードownerログイン。

  • Database.ConnectionString — Testcontainersではなく外部Postgresにテストを向ける場合のみ。

  • Ai.ApiKey — AI機能用のAnthropic APIキー。

  • Calendar.FredApiKey — FRED (St. Louis Fed) API key. The primary economic-calendar value source (interest rates, inflation, employment).

  • Calendar.BlsApiKey — BLS (US Bureau of Labor Statistics) v2 registration key (CPI, PPI, employment, JOLTS). Absent ⇒ the low-quota public tier.

    Both feed the exact FredSource/BlsSource the ingestion worker uses. With a key present, CalendarSourceLiveTests hits the real provider and asserts observations come back; absent, that source's test skips cleanly. The app also reads these at runtime via App:Calendar:FredApiKey / App:Calendar:BlsApiKey (environment variables override — e.g. FRED_API_KEY, BLS_API_KEY).

優先順位​

  1. 環境変数がすべてをオーバーライド(例:App__OwnerPassword、App:Ai:ApiKey)。
  2. secrets/dev-credentials.local.json — 統一ファイル(優先)。
  3. レガシー分割ファイル — openapi-test-app.local.json、openapi-cids.local.json、openapi-tokens.local.jsonは統一ファイルが存在しないときにまだ読み取られます поэтому 既存のマシンは引き続き動作。新しいセットアップは単一ファイルを使用する必要があります。

安全​

  • secrets/と*.local.jsonはgitignored — ここにあるものは決してコミットされません。
  • ライブコピーテストは非デモアカウントでの実行を拒否します(IsLiveアカウントはLiveCopyFixtureによってフィルターアウトされます)。トークンキャッシュにデモアカウントのみを保持してください。
  • クラスター内(Kubernetes)ランはファイルをread-only Secretとしてマウントします; トークンリフレッシュはメモリに保持され、read-only write-backは沈黙のno-opです。