testes-remotos

Testes contra executores remotos em testes de integração.

O que é testes-remotos?

Esta habilidade permite que desenvolvedores executem testes de integração do agente contra executores remotos (Docker e Wine) para verificar se os recursos do agente funcionam tanto em ambientes de execução locais quanto remotos. Ela suporta duas configurações principais: Docker (executor Linux) e Wine (executor Windows). Os testes exigem uma máquina host x86_64 Linux, mas é possível usar um devbox para desenvolvimento em macOS. As fixtures de teste utilizam métodos auxiliares como `TestCodexBuilder::build_with_auto_env()` e `TestAppServer::new_with_auto_env()` para ativar a execução remota. Há suporte a macros de skip para pular testes em configurações específicas, como `skip_if_wine_exec!` ou `skip_if_remote!`, e scripts bash simples ou comandos Bazel para executar os testes. O objetivo é garantir que todas as funcionalidades do agente sejam testadas consistentemente, minimizando alterações manuais e mantendo a compatibilidade entre hosts e targets.

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/openai/codex/tree/main/.codex/skills/remote-tests

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Os testes de executor remoto exercitam a separação app-server/exec-server para garantir que os recursos do agente funcionem em ambientes de execução locais e remotos.

Atualmente, os testes de executor remoto exigem uma máquina host Linux x86_64. Existem duas variantes:

  1. Docker (exec-server Linux)
  2. Wine (exec-server Windows)

Fixtures de Teste

Casos de teste individuais devem optar por serem executados contra um executor remoto.

codex_core

Use TestCodexBuilder::build_with_auto_env() para optar pela execução remota em testes de integração do núcleo, a menos que o teste precise de um controle mais preciso sobre seu executor.

app-server

Inicie o servidor com TestAppServer::new_with_auto_env() a menos que o teste defina seu próprio $CODEX_HOME/environments.toml ou vá definir ambientes personalizados em tempo de execução.

Inicie threads com TestAppServer::send_thread_start_request_with_auto_env() se você criou o servidor com a abordagem auto_env. Omita ThreadStartParams.environments (deixe como None) ao fazer isso.

Pular Testes

Se um teste não passar em uma configuração específica de executor remoto, você pode pulá-lo apenas nessa configuração. Inclua uma string com o motivo para futuros leitores quando a macro de skip escolhida suportar uma.

Escolha a macro de skip pelo que causa a falha do teste:

  • skip_if_target_windows!: Comportamento do target Windows.
  • skip_if_wine_exec!: Limitações do runner Wine-exec.
  • skip_if_host_windows!: Limitações do host Windows.
  • skip_if_remote!: Comportamento de teste apenas local.
  • skip_if_no_remote_env!: Comportamento de teste apenas remoto.

Prefira definir testes que rodam em todas as configurações de host/target por padrão. Consulte a skill $path-types para as alterações mais comuns necessárias para tornar os testes compatíveis.

Docker

O contêiner Docker é construído e inicializado via ./scripts/test-remote-env.sh. Fontear este script no bash também fornece a função codex_remote_env_cleanup para usar após os testes.

Para executar testes de integração do núcleo contra um executor remoto 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
'

Para executar testes de integração do app-server contra um executor remoto 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-app-server --test all
'

Wine

Esses testes constroem um exec-server para Windows e o executam sob Wine, com o app-server permanecendo no host Linux. A dependência de compilação multiplataforma significa que eles só rodam no Bazel.

Para testes de integração do núcleo:

bazel test //codex-rs/core:core-all-wine-exec-test

Para testes de integração do app-server:

bazel test //codex-rs/app-server:app-server-all-wine-exec-test

Devboxes

Você pode usar um devbox para executar esses testes se estiver em uma máquina macOS.

Você pode listar devboxes via applied_devbox ls e escolher aquele com codex no nome. Conecte-se ao devbox via ssh <nome_do_devbox>. Reutilize o mesmo checkout do codex em ~/code/codex. Redefina arquivos se necessário. Checkouts múltiplos demoram mais para construir e ocupam mais espaço. Verifique se o SHA e os arquivos modificados estão sincronizados entre remoto e local.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep watching open PRs so fresh review feedback is surfaced promptly. Use when the user asks Codex to monitor a PR, watch CI, handle review comments, or keep an eye on failures and feedback on an open PR.

code-review

Run a final code review on a pull request

code-review-change-size

Change size guidance (800 lines)

code-review-context

Model visible context

code-review-testing

Test authoring guidance

codex-bug

Diagnose GitHub bug reports in openai/codex. Use when given a GitHub issue URL from openai/codex and asked to decide next steps such as verifying against the repo, requesting more info, or explaining why it is not a bug; follow any additional user-provided instructions.

codex-issue-digest

Run a GitHub issue digest for openai/codex by feature-area labels, all areas, and configurable time windows. Use when asked to summarize recent Codex bug reports or enhancement requests, especially for owner-specific labels such as tui, exec, app, or similar areas.

codex-pr-body

Update the title and body of one or more pull requests.

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG/vector/code-native assets, extending an established icon or logo system, or building the visual directly in HTML/CSS/canvas.

openai/babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep watching open PRs so fresh review feedback is surfaced promptly. Use when the user asks Codex to monitor a PR, watch CI, handle review comments, or keep an eye on failures and feedback on an open PR.

openai-docs

Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, or model upgrade and prompt-upgrade guidance; use OpenAI docs MCP tools for non-Codex docs questions, use the Codex manual helper first for broad Codex self-knowledge, and restrict fallback browsing to official OpenAI domains.

openai/test-tui

Guide for testing Codex TUI interactively

path-types

Choose Rust types for operating system paths across the Codex repository. Use when defining new path-bearing types or explicitly migrating existing ones.

plugin-creator

Create and scaffold plugin directories for Codex with a required `.codex-plugin/plugin.json`, optional plugin folders/files, valid manifest defaults, and personal-marketplace entries by default. Use when Codex needs to create a new personal plugin, add optional plugin structure, generate or update marketplace entries for plugin ordering and availability metadata, or update an existing local plugin during development with the CLI-driven cachebuster and reinstall flow.

pushing-ci-changes

Pushing GitHub Actions changes, resolving push rejection, requesting upload exceptions.

skill-creator

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Codex's capabilities with specialized knowledge, workflows, or tool integrations.

skill-installer

Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).

test-tui

Guide for testing Codex TUI interactively

update-v8-version

Update Codex's pinned `v8` / `rusty_v8` versions, validate the release-candidate path, and investigate failed V8 canary or artifact builds. Use when asked to bump V8, update `rusty_v8` artifacts, prepare or validate a V8 release candidate, check `v8-canary`, or diagnose why a V8 version update no longer builds.

Habilidades Relacionadas