Skip to main content

run-tests

Run the tests, run one spec, run e2e locally or on Daytona, investigate a skipped spec. Use for executing @openwork/testkit agent-first verification.

소스 정보

저장소
different-ai/openwork
최근 소스 활동
2026년 10월 27일 18:05
감지된 SKILL.md 언어
영어
스타
24,367
포크
2,474

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
run-tests
description
Run the tests, run one spec, run e2e locally or on Daytona, investigate a skipped spec. Use for executing @openwork/testkit agent-first verification.
# Skill: Run Tests ## Run the landable tree - Check out the exact PR head that will land. After any rebase or cherry-pick, discard the old verdict and run again. - Run one test at a time so each failure and ambient test evidence has one owner. ## Choose the execution environment ```bash pnpm evals:e2e <slug> ``` The CLI prints the placement and reason; copy that line into the report. Use `--local` only when the user asks for local. `--daytona` requires Daytona. Never switch lanes to turn a red Daytona run green. Know what each placement runs before reading a verdict: - Daytona (the default when the `daytona` CLI is logged in) builds `OPENWORK_EVAL_REF`, which defaults to `dev`, not your working tree. To test a branch, push it and export `OPENWORK_EVAL_REF=$(git rev-parse HEAD)`; add `--strict-ref` so a mismatch fails instead of warning. - `--local` runs your working tree. A spec whose world uses `appWeb` stays in headless Chrome. A spec whose world uses `desktop` (`seed.desktop`, `app()`) opens an Electron window that takes focus on this computer; run those on Daytona unless the user asks for a local window. ## Run the core journey The test every PR runs. Its world is a Freestyle VM, so this needs only the evals install and the Freestyle key: ```bash FREESTYLE_API_KEY="$(infisical secrets get FREESTYLE_API_KEY --env dev --path /openwork-ops --plain --silent)" \ node evals/bin/evals.mjs core/core-chat.e2e.test.ts --local --engine v1 --surface web ``` It runs against the pushed `HEAD` commit; push first. After changing the world itself, run `node evals/scripts/check-freestyle-world.ts --base <sha>` instead. ## Prepare local fallback ```bash pnpm --filter @openwork/types build pnpm --filter @openwork-ee/den-db build pnpm --filter @openwork/email build pnpm dev:den:mysql ``` - Local `server()` requires MySQL at `127.0.0.1:3306`. - Build those workspace dependencies before local Den; otherwise den-api imports can fail. - If the checkout path contains spaces, set `OPENWORK_EVAL_SURFACES_DIR` to a space-free path before E2E tests. node-gyp and electron-rebuild require it. - Local Electron profiles, and the `electron.log` inside them, are removed when a journey ends. Set `OPENWORK_EVAL_SURFACE_LOGS_DIR` to a directory outside the surfaces directory to keep a copy of each log; the packaged smoke does. ## Choose one lane - Run one app/Den-driving E2E test: ```bash pnpm evals:e2e <name> ``` - The CLI owns placement and prints `placement: <daytona|local> (<reason>)`. ## Match the runtime Check what runtime the changed code ships on before trusting a green run. `apps/server` runs on Bun in evals; Desktop runs that same code on Electron's Node (undici). If the change touches fetch, streams, signals, GC, or timers, run it on the shipping runtime too: ```bash ELECTRON_RUN_AS_NODE=1 apps/desktop/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron --expose-gc <script> ``` A green run on the wrong runtime is not evidence. ## Read the verdict - Record the exact command, exit code, and passed/failed/skipped counts. - Report each skip as `skipped — needs: X`; never call it passed. A green command containing skips makes the overall verdict `Incomplete`. - Use `Passed`, `Incomplete`, or `Failed` for the overall result. ## Iterate, then cold-boot - While iterating, reuse a warm Den with `OPENWORK_EVAL_DEN_API_URL`. - Before declaring `Passed`, remove the reuse override and cold-boot through `server()` on the same commit. - Inject secrets with `infisical run --silent --`; never print or echo values.
GitHub에서 보기