Agent Skillsb-editor/beutl › beutl-test

beutl-test

GitHub

运行 Beutl 项目的 NUnit 测试套件,支持全量、单项目或按名称过滤。执行前需确认范围以避免耗时,失败时报告错误详情并等待指令。

.claude/skills/beutl-test/SKILL.md b-editor/beutl

触发场景

用户要求运行测试 验证修复结果 复现失败用例 检查模块覆盖率

安装

npx skills add b-editor/beutl --skill beutl-test -g -y
更多选项

非标准路径

npx skills add https://github.com/b-editor/beutl/tree/main/.claude/skills/beutl-test -g -y

不安装直接使用

npx skills use b-editor/beutl@beutl-test

指定 Agent (Claude Code)

npx skills add b-editor/beutl --skill beutl-test -a claude-code -g -y

安装 repo 全部 skill

npx skills add b-editor/beutl --all -g -y

预览 repo 内 skill

npx skills add b-editor/beutl --list

SKILL.md

Frontmatter
{
    "name": "beutl-test",
    "description": "Run Beutl's NUnit test suite (full or scoped). Use when the user asks to run tests, verify a fix,\nreproduce a failure, or check coverage of a specific module. Triggers on \"テスト走らせて\",\n\"run tests\", \"verify this\", \"is this green?\". Always confirm the test scope before running —\nthe full suite is slow.\n",
    "allowed-tools": "Bash(dotnet test:*) Bash(dotnet build:*)",
    "argument-hint": "[FullyQualifiedName-substring|project-path]"
}

Run Beutl tests

The full Beutl test suite is slow (minutes). Always confirm scope with the user before running unless they have specified one in this turn or $ARGUMENTS is non-empty. Use AskUserQuestion with these defaults:

  • Scope: full suite (Beutl.slnx) / single project (e.g. tests/Beutl.UnitTests/Beutl.UnitTests.csproj) / filter by FullyQualifiedName substring (e.g. Beutl.UnitTests.Engine.Animation)
  • Verbosity: normal (default) / detailed (when chasing a flaky failure)

Once scope is decided, run the matching command:

# Full suite (only when truly needed)
dotnet test Beutl.slnx -f net10.0 --settings coverlet.runsettings \
  --logger "console;verbosity=normal"

# Single project
dotnet test <path/to/Tests.csproj> -f net10.0 --settings coverlet.runsettings \
  --logger "console;verbosity=normal"

# Filter by FQN substring
dotnet test Beutl.slnx -f net10.0 --settings coverlet.runsettings \
  --logger "console;verbosity=normal" \
  --filter "FullyQualifiedName~<substring>"

If $ARGUMENTS is provided, treat it as the FQN substring and skip the prompt.

Notes

  • Framework net10.0 matches .github/workflows/dotnet.yml. There is also a net10.0-windows target for Windows-specific tests; do not switch without reason.
  • Coverlet settings live in coverlet.runsettings.
  • Test framework: NUnit + Moq. Tests live under tests/ in per-area projects (e.g. tests/Beutl.UnitTests/, tests/Beutl.Graphics3DTests/, tests/SourceGeneratorTest/, tests/Beutl.FFmpegIpc.Tests/). Note tests/Beutl.Graphics3DTests/ is a Vulkan-gated NUnit suite (GPU rendering checks; self-skips via Assert.Ignore when no Vulkan device is available); GPU-free Graphics3D logic tests live under tests/Beutl.UnitTests/Engine/Graphics3D/.
  • Benchmark projects (tests/Beutl.Benchmarks, tests/Beutl.FFmpegBenchmarks) use BenchmarkDotNet; exclude them by selecting a single test project rather than the whole solution when iterating.
  • For deeper debugging without polluting the working tree, prefer the beutl-test-runner subagent (it runs in an isolated worktree).

On failure

Report up to 10 failing FullyQualifiedName entries with the first line of each error message, then stop and wait for direction. Do NOT loop attempting fixes without checking in.

版本历史

  • db01de7 当前 2026-08-20 13:43

同 Skill 集合

.claude/skills/beutl-agent-asset-sourcing/SKILL.md
.claude/skills/beutl-agent-brief-expansion/SKILL.md
.claude/skills/beutl-agent-look-effect-chain/SKILL.md
.claude/skills/beutl-agent-source-grounding/SKILL.md
.claude/skills/beutl-agent-timeline-from-shotlist/SKILL.md
.claude/skills/beutl-agent-visual-review/SKILL.md
.claude/skills/beutl-ai-self-review/SKILL.md
.claude/skills/beutl-board-task/SKILL.md
.claude/skills/beutl-build/SKILL.md
.claude/skills/beutl-coverage/SKILL.md
.claude/skills/beutl-drawable/SKILL.md
.claude/skills/beutl-filter-effect/SKILL.md
.claude/skills/beutl-format/SKILL.md
.claude/skills/beutl-pre-pr/SKILL.md
.claude/skills/beutl-test-project/SKILL.md
.claude/skills/beutl-tooltab-extension/SKILL.md
.claude/skills/speckit-analyze/SKILL.md
.claude/skills/speckit-checklist/SKILL.md
.claude/skills/speckit-clarify/SKILL.md
.claude/skills/speckit-constitution/SKILL.md
.claude/skills/speckit-git-branch/SKILL.md
.claude/skills/speckit-implement/SKILL.md
.claude/skills/speckit-plan/SKILL.md
.claude/skills/speckit-specify/SKILL.md
.claude/skills/speckit-tasks/SKILL.md
.claude/skills/speckit-taskstoissues/SKILL.md
.claude/skills/beutl-gpu-crash-repro/SKILL.md
.claude/skills/beutl-loop/SKILL.md
.claude/skills/beutl-resolve-reviews/SKILL.md
.claude/skills/speckit-git-commit/SKILL.md

元信息

文件数
0
版本
76df85a
Hash
8dfaa789
收录时间
2026-08-20 13:43

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