mcpField
R
remote-tests

remote-tests

github.com/openai测试与质量131.4k413 次安装今天更新
代码仓库

关于 remote-tests

供开发者验证 Agent 功能在本地和远程执行环境中的表现。文档介绍 Docker 和 Wine 测试方式、测试夹具及按配置跳过测试的方法。

主要功能

  1. 01测试本地与远程执行
  2. 02提供 Docker 测试设置
  3. 03提供 Wine 测试设置
  4. 04说明测试夹具用法
  5. 05列出按配置跳过规则

适用场景

  1. 01远程测试核心集成
  2. 02远程测试 app-server 集成
  3. 03运行 Windows exec-server 测试
  4. 04针对环境限制选择跳过项

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openai/codex --skill remote-tests

安装后在 Claude Code 中输入/remote-tests确认已加载。

详细介绍

远程执行器测试会测试 app-server/exec-server 拆分,以确保 Agent 功能在本地和远程执行环境中都能正常工作。

远程执行器测试目前要求主机为 x86_64 Linux。有两种类型:

  1. Docker(Linux exec-server)
  2. 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 及修改文件是否同步。

评论

支持 Markdown