Community코딩 & 개발github.com

remote-tests

원격 실행기를 사용한 통합 테스트에서 에이전트 기능을 검증합니다.

remote-tests란 무엇인가요?

이 스킬은 원격 실행기(remote executor)를 활용한 통합 테스트를 설정하고 실행하는 방법을 제공합니다. 앱-서버와 실행-서버의 분리 환경에서 에이전트 기능이 로컬 및 원격 실행 환경 모두에서 올바르게 작동하는지 검증하는 데 사용됩니다. Docker(Linux exec-server)와 Wine(Windows exec-server) 두 가지 원격 실행기 유형을 지원하며, 현재 x86_64 Linux 호스트가 필요합니다. macOS 사용자는 devbox를 통해 테스트를 실행할 수 있습니다. 테스트 케이스는 원격 실행을 위해 opt-in 방식으로 참여해야 하며, 자동 환경 설정을 위한 `TestCodexBuilder::build_with_auto_env()`와 `TestAppServer::new_with_auto_env()` 같은 헬퍼 함수를 제공합니다. 또한 특정 원격 실행기 구성에서 실패하는 테스트를 건너뛰기 위한 다양한 `skip_if_*` 매크로를 지원합니다.

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

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

원격 실행기 테스트는 앱-서버/실행-서버 분할을 테스트하여 에이전트 기능이 로컬 및 원격 실행 환경 모두에서 작동하는지 확인합니다.

원격 실행기 테스트는 현재 x86_64 Linux 호스트 시스템이 필요합니다. 두 가지 종류가 있습니다:

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

테스트 픽스처

개별 테스트 케이스는 원격 실행기로 실행되기 위해 opt-in해야 합니다.

codex_core

TestCodexBuilder::build_with_auto_env()를 사용하여 코어 통합 테스트에서 원격 실행을 opt-in하세요. 단, 테스트가 실행기를 더 세밀하게 제어해야 하는 경우는 예외입니다.

app-server

TestAppServer::new_with_auto_env()로 서버를 시작하세요. 단, 테스트가 자체 $CODEX_HOME/environments.toml을 정의하거나 런타임에 사용자 정의 환경을 정의할 경우는 예외입니다.

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 원격 실행기에 대해 앱-서버 통합 테스트를 실행하려면:

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에서 실행하며, 앱-서버는 Linux 호스트에 유지됩니다. 크로스 플랫폼 빌드 의존성으로 인해 Bazel에서만 실행됩니다.

코어 통합 테스트의 경우:

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

앱-서버 통합 테스트의 경우:

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와 수정된 파일이 원격과 로컬 간에 동기화되어 있는지 확인하세요.

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.

관련 스킬