Agent Skillsb-editor/beutl › beutl-test

beutl-test

GitHub

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

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

Trigger Scenarios

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

Install

npx skills add b-editor/beutl --skill beutl-test -g -y
More Options

Non-standard path

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

Use without installing

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.

Version History

  • db01de7 Current 2026-08-20 13:43

Same Skill Collection

.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

Metadata

Files
0
Version
76df85a
Hash
8dfaa789
Indexed
2026-08-20 13:43

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-29 21:43
浙ICP备14020137号-1 $Гость$