run-tests

GitHub

指导如何执行测试套件,包括选择本地或Daytona环境、准备依赖、运行单个规范及E2E测试,并记录验证结果。

.opencode/skills/run-tests/SKILL.md different-ai/openwork

触发场景

需要运行单元测试或集成测试 执行端到端(E2E)测试 调查跳过的测试用例

安装

npx skills add different-ai/openwork --skill run-tests -g -y
更多选项

非标准路径

npx skills add https://github.com/different-ai/openwork/tree/dev/.opencode/skills/run-tests -g -y

不安装直接使用

npx skills use different-ai/openwork@run-tests

指定 Agent (Claude Code)

npx skills add different-ai/openwork --skill run-tests -a claude-code -g -y

安装 repo 全部 skill

npx skills add different-ai/openwork --all -g -y

预览 repo 内 skill

npx skills add different-ai/openwork --list

SKILL.md

Frontmatter
{
    "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

  • Prefer Daytona when Daytona credentials, tooling, and service access are available. Set OPENWORK_EVAL_DAYTONA=1 for that run.
  • If Daytona is unavailable, run the same spec locally with OPENWORK_EVAL_DAYTONA unset. Missing Daytona access is an expected path for OSS contributors and does not make the verdict fail or incomplete.
  • Determine fallback eligibility before execution: use local only when Daytona credentials, tooling, or service access are unavailable, or when the user explicitly requires local.
  • Once Daytona is available and selected, a runtime, test, or product failure does not make Daytona unavailable. Diagnose and repair any red or incomplete Daytona run in Daytona; never switch lanes to turn the verdict green.
  • A local reproduction may aid diagnosis, but it is not fallback and cannot replace the required Daytona verdict.
  • Record the selected lane. For local fallback, report which Daytona prerequisite was unavailable without printing secret values.

Prepare local fallback

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.

Choose one lane

  • Run one app-less PR-lane test:
pnpm evals:pr specs/<name>.test.ts
  • Run one app/Den-driving E2E test:
pnpm evals:e2e <name>
# Fallback:
OPENWORK_EVAL_E2E_TESTS=1 pnpm --dir evals exec vitest run --config vitest.config.ts --project e2e specs/<name>.e2e.test.ts
  • The commands above use Daytona when OPENWORK_EVAL_DAYTONA=1 is set and isolated local resources when it is unset.

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.

版本历史

  • ff5d298 当前 2026-08-20 11:36

同 Skill 集合

.opencode/skills/agent-first-screenshots/SKILL.md
.opencode/skills/browser-automation/SKILL.md
.opencode/skills/build-a-witness/SKILL.md
.opencode/skills/cloud-dashboard-walkthrough/SKILL.md
.opencode/skills/create-plugin/SKILL.md
.opencode/skills/daytona-chrome-cdp/SKILL.md
.opencode/skills/daytona-cloud-instance/SKILL.md
.opencode/skills/daytona-cloud-server/SKILL.md
.opencode/skills/daytona-dev/SKILL.md
.opencode/skills/daytona-electron-den/SKILL.md
.opencode/skills/daytona-electron-test/SKILL.md
.opencode/skills/daytona-flow-validator/SKILL.md
.opencode/skills/daytona-recording-artifacts/SKILL.md
.opencode/skills/daytona-secrets-volume/SKILL.md
.opencode/skills/daytona-seeded-cloud-demo/SKILL.md
.opencode/skills/daytona-windows-cert/SKILL.md
.opencode/skills/diagnose-a-red-run/SKILL.md
.opencode/skills/fraimz/SKILL.md
.opencode/skills/get-env-var/SKILL.md
.opencode/skills/openwork-models/SKILL.md
.opencode/skills/product-tutorial-pipeline/SKILL.md
.opencode/skills/prove-a-pr/SKILL.md
.opencode/skills/publish-evidence/SKILL.md
.opencode/skills/run-evals/SKILL.md
.opencode/skills/shadcn/SKILL.md
.opencode/skills/upload-photo/SKILL.md
.opencode/skills/write-a-spec/SKILL.md
.warden/skills/desktop-den-sync-review/SKILL.md
.warden/skills/diff-security-review/SKILL.md

元信息

文件数
0
版本
757601b
Hash
0efdd8d8
收录时间
2026-08-20 11:36

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-17 02:15
浙ICP备14020137号-1