コンテンツにスキップ

機械翻訳

このページは AI によって自動翻訳されており、誤りが含まれる可能性があります。疑義がある場合は、簡体字中国語の原文を優先してください。

簡体字中国語原文 · 翻訳の問題を報告

テストアーキテクチャ

pplx_export テストシステムは完全にオフラインで動作し、チェックインされたモックデータを使用し、スナップショットでレンダラーの動作を固定します。このページでは、アーキテクチャと保証について説明します。現在のモジュールのリストはテストで、フィクスチャの詳細はテストフィクスチャで管理されています。

セクションはアーキテクチャ概要の番号に従います。


1. テストシステム

uv run pytest tests を使用してスイートを実行します。テスト数は現在の実行結果に基づいて報告され、アーキテクチャの定数ではありません。

1.1 階層

階層 代表モジュール 契約
純粋なユニット動作 test_units.py、認証情報/cookie/設定テスト モック入力で関数、クラス、検証、正規化を分離
コンポーネントセマンティクス 中断、スタブワークフロー、回答バリアント、リレーションテスト ネットワークゼロ条件下でパーサー、レンダラー、状態、インデックスコードの連携をカバー
オフラインコマンドと状態動作 backfill、削除同期、初期化、レビュー回帰 一時ディレクトリとfakeトランスポートでコマンドパスを実行
レンダリングスナップショット test_render_snapshots.py API形状のモックJSONを本番再レンダリングパスに送り、すべてのMarkdownをコミットされたゴールデンとバイト単位で比較

N、V3、V4、V5などのレビュー番号は階層をまたがるトレーサビリティメタデータであり、独立した実行アーキテクチャを定義するものではなく、テストモジュールと一対一で対応する必要もありません。

1.2 スナップショットデータフロー

  1. モックフィクスチャが raw_entries.json、オプションの raw_blocks.jsonthread.json を提供します。
  2. tests/conftest.py::render_fixture がこれらのファイルを tmp_path にコピーします。
  3. フィクスチャが commands.rerender_cmd.rerender を呼び出します。これは本番オフライン再構築パスです。
  4. 新しく生成された conversation.mdturns/turn_*.md が、コミットされた golden/ 成果物とバイト単位で比較されます。

ゴールデンは生成された期待結果であり、独立したデータソースではありません。成果物のバイトを変更するレンダラーの変更は、レビューされ意図的にゴールデンを再生成するまでスナップショットスイートを失敗させます。

1.3 分離と信頼境界

  • フィクスチャソース — コミットされたすべてのフィクスチャ入力はモックデータであり、オンラインアカウント、ライブAPIレスポンス、web_archive/、またはプライベートアーカイブからコピーされたものではありません。
  • ネットワーク境界 — テストはfakeとオフラインパスを使用します。チェックインされたフィクスチャは認証情報やネットワークを必要としません。
  • 設定境界 — autuseフィクスチャがプレースホルダアカウント設定をインストールし、開発者の実際の ~/.config がテスト結果を決定しません。
  • ファイルシステム境界 — コマンドと移行動作は tmp_path の下で実行され、ユーザーアーカイブをテスト対象としません。
  • 残留境界tests/scrub_fixtures.py --check はファイルを変更せずに、設定された環境依存文字列、ローカル絶対パス、署名付きURL認証情報を拒否します。

ユニットアサーション、コンポーネントセマンティクス、コマンド状態テスト、バイトレベルのスナップショットが、局所的なロジックとエンドツーエンドの再レンダリング契約を共同で保護します。