remote-tests について
Agent 機能をローカルとリモートの実行環境で検証する開発者向けテストスキルです。Docker と Wine のテスト手順、フィクスチャ、構成別のスキップ方法を説明します。
主な機能
- 01ローカルとリモートの実行をテスト
- 02Docker のテスト設定を提供
- 03Wine のテスト設定を提供
- 04テストフィクスチャを説明
- 05構成別のスキップ条件を列挙
活用シーン
- 01core のリモート統合テスト
- 02app-server のリモート統合テスト
- 03Windows exec-server テストの実行
- 04環境制約に応じたスキップ指定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openai/ codex --skill remote-testsインストール後、Claude Code で/remote-testsを入力して読み込まれたか確認します。
詳細
リモート実行環境のテストでは、app-server/exec-server の分割を実際に動かし、エージェント機能がローカルとリモートの両方の実行環境で動作することを確認します。
リモート実行環境のテストは、現時点では x86_64 Linux のホストマシンが必要です。次の 2 種類があります。
- Docker(Linux exec-server)
- Wine(Windows exec-server)
テストフィクスチャ
個々のテストケースは、リモート実行環境に対して実行することを明示的にオプトインする必要があります。
codex_core
コア統合テストでリモート実行にオプトインするには、TestCodexBuilder::build_with_auto_env() を使用します。ただし、テストが executor をより細かく制御する必要がある場合はこの限りではありません。
app-server
テストが独自の $CODEX_HOME/environments.toml を定義しない場合、または実行時にカスタム環境を定義しない場合は、TestAppServer::new_with_auto_env() でサーバーを起動します。
auto_env の方法でサーバーを作成した場合は、TestAppServer::send_thread_start_request_with_auto_env() でスレッドを開始します。その際は ThreadStartParams.environments を省略してください(None のままにします)。
テストのスキップ
特定のリモート実行環境の構成でテストが通らない場合は、その構成に限ってスキップできます。選択したスキップマクロが理由の文字列をサポートしている場合は、将来の読者のために理由を含めてください。
テストが失敗する原因に応じて、スキップマクロを選択します。
skip_if_target_windows!: Windows ターゲットの動作。skip_if_wine_exec!: Wine-exec ランナーの制約。skip_if_host_windows!: Windows ホストの制約。skip_if_remote!: ローカル専用のテスト動作。skip_if_no_remote_env!: リモート専用のテスト動作。
既定ですべてのホスト/ターゲット構成で実行されるテストを定義することを推奨します。テストを互換にするために必要となる最も一般的な変更については、$path-types スキルを参照してください。
Docker
Docker コンテナは ./scripts/test-remote-env.sh を介してビルドおよび初期化されます。このスクリプトを bash で source すると、テスト後に使用する codex_remote_env_cleanup 関数も利用できます。
Docker リモート実行環境に対してコア統合テストを実行するには:
bash -c '
set -euo pipefail
unset CODEX_TEST_REMOTE_EXEC_SERVER_URL
source scripts/test-remote-env.sh
trap codex_remote_env_cleanup EXIT
cd codex-rs
just test -p codex-core --test all
'
Docker リモート実行環境に対して app-server 統合テストを実行するには:
bash -c '
set -euo pipefail
unset CODEX_TEST_REMOTE_EXEC_SERVER_URL
source scripts/test-remote-env.sh
trap codex_remote_env_cleanup EXIT
cd codex-rs
just test -p codex-app-server --test all
'
Wine
これらのテストは Windows 用の exec-server をビルドし、Wine 上で実行します。app-server は Linux ホスト上に残ります。クロスプラットフォームビルドの依存関係があるため、Bazel でのみ実行されます。
コア統合テストの場合:
bazel test //codex-rs/core:core-all-wine-exec-test
app-server 統合テストの場合:
bazel test //codex-rs/app-server:app-server-all-wine-exec-test
Devbox
macOS マシンで実行している場合は、devbox を使用してこれらのテストを実行できます。
devbox は applied_devbox ls で一覧表示でき、名前に codex が含まれるものを選びます。
devbox には ssh <devbox_name> で接続します。
~/code/codex にある同じ codex のチェックアウトを再利用します。必要に応じてファイルをリセットしてください。複数のチェックアウトはビルドに時間がかかり、より多くのスペースを消費します。
リモートとローカルの間で SHA と変更されたファイルが同期しているかを確認します。