关于 remote-tests
供开发者验证 Agent 功能在本地和远程执行环境中的表现。文档介绍 Docker 和 Wine 测试方式、测试夹具及按配置跳过测试的方法。
主要功能
- 01测试本地与远程执行
- 02提供 Docker 测试设置
- 03提供 Wine 测试设置
- 04说明测试夹具用法
- 05列出按配置跳过规则
适用场景
- 01远程测试核心集成
- 02远程测试 app-server 集成
- 03运行 Windows exec-server 测试
- 04针对环境限制选择跳过项
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ openai/ codex --skill remote-tests安装后在 Claude Code 中输入/remote-tests确认已加载。
详细介绍
远程执行器测试会测试 app-server/exec-server 拆分,以确保 Agent 功能在本地和远程执行环境中都能正常工作。
远程执行器测试目前要求主机为 x86_64 Linux。有两种类型:
- Docker(Linux exec-server)
- Wine(Windows exec-server)
测试夹具
各个测试用例必须选择加入,才能使用远程执行器运行。
codex_core
除非测试需要更精确地控制执行器,否则在核心集成测试中使用 TestCodexBuilder::build_with_auto_env() 选择加入远程执行。
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 执行器的限制。skip_if_host_windows!:Windows 主机限制。skip_if_remote!:仅适用于本地的测试行为。skip_if_no_remote_env!:仅适用于远程环境的测试行为。
优先默认让测试在所有主机/目标平台配置下都能运行。常见的测试兼容性改动请参阅 $path-types 技能。
Docker
Docker 容器通过 ./scripts/test-remote-env.sh 构建并初始化。在 bash 中加载此脚本后,还会提供测试结束后可调用的 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 运行这些测试。
你可以通过 applied_devbox ls 列出 devbox,并选择名称中包含 codex 的设备。
使用 ssh <devbox_name> 连接到 devbox。
重复使用 ~/code/codex 中的同一份 codex 检出。如有需要,请重置文件。多份检出会延长构建时间并占用更多空间。
检查远程和本地的 SHA 及修改文件是否同步。