running-apex-tests
Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user needs to run Apex tests, check code coverage, fix failing tests, or work with *Test.cls / *_Test.cls files. TRIGGER when: user runs Apex tests, checks code coverage, fixes failing tests, or touches *Test.cls / *_Test.cls files. DO NOT TRIGGER when: writing Apex production code (use generating-apex), Agentforce agent testing (use testing-agentforce), or Jest/LWC tests (use generating-lwc-components).
What this skill does
# running-apex-tests: Salesforce Test Execution & Coverage Analysis Use this skill when the user needs **Apex test execution and failure analysis**: running tests, checking coverage, interpreting failures, improving coverage, and managing a disciplined test-fix loop for Salesforce code. ## When This Skill Owns the Task Use `running-apex-tests` when the work involves: - `sf apex run test` workflows - Apex unit-test failures - code coverage analysis - identifying uncovered lines and missing test scenarios - structured test-fix loops for Apex code Delegate elsewhere when the user is: - writing or refactoring production Apex → `generating-apex` skill - testing Agentforce agents → `testing-agentforce` skill - testing LWC with Jest → [generating-lwc-components](../generating-lwc-components/SKILL.md) --- ## Required Context to Gather First Ask for or infer: - target org alias - desired test scope: single class, specific methods, suite, or local tests - coverage threshold expectation - whether the user wants diagnosis only or a test-fix loop - whether related test data factories already exist --- ## Recommended Workflow ### 1. Discover test scope Identify: - existing test classes - target production classes - test data factories / setup helpers ### 2. Run the smallest useful test set first Start narrow when debugging a failure; widen only after the fix is stable. ### 3. Analyze results Focus on: - failing methods - exception types and stack traces - uncovered lines / weak coverage areas - whether failures indicate bad test data, brittle assertions, or broken production logic ### 4. Run a disciplined fix loop When the issue is code or test quality: - delegate code fixes to `generating-apex` skill when needed - add or improve tests - rerun focused tests before broader regression ### 5. Improve coverage intentionally Cover: - positive path - negative / exception path - bulk path (251+ records where appropriate) - callout or async path when relevant --- ## High-Signal Rules | Rule | Rationale | |------|-----------| | Default to `SeeAllData=false` | Ensures test isolation; prevents reliance on org-specific data | | Every test must assert meaningful outcomes | Tests with no assertions prove nothing and give false confidence | | Test bulk behavior with 251+ records | Triggers process in batches of 200; 251 records crosses the boundary | | Use factories / `@TestSetup` when they improve clarity | Consistent data creation in one place; rolled back between test methods | | Pair `Test.startTest()` with `Test.stopTest()` for async | Ensures async operations (queueable, future) complete before assertions | | Do not hide flaky org dependencies inside tests | Prevents intermittent failures tied to org state | --- ## Gotchas | Issue | Resolution | |-------|------------| | Test passes locally but fails in CI org | Check for `SeeAllData=true` or undeclared dependencies on org-specific records | | Coverage drops unexpectedly after refactor | Run focused class-level tests first, then widen to `RunLocalTests` to confirm | | "Uncommitted work pending" error in callout test | DML and HTTP callouts cannot be mixed in the same test context without `Test.startTest()` wrapping | | Mock not taking effect in test | Ensure `Test.setMock()` is called before the code that makes the callout | | `@TestSetup` data missing in test method | `@TestSetup` data is committed per test method — re-query it; do not store in static variables | --- ## Output Format When finishing, report in this order: 1. **What tests were run** 2. **Pass/fail summary** 3. **Coverage result** 4. **Root-cause findings** 5. **Fix or next-run recommendation** Suggested shape: ```text Test run: <scope> Org: <alias> Result: <passed / partial / failed> Coverage: <percent / key classes> Issues: <highest-signal failures> Next step: <fix class, add test, rerun scope, or widen regression> ``` --- ## Cross-Skill Integration | Need | Delegate to | Reason | |------|-------------|--------| | Fix production code or author test classes | `generating-apex` skill | Code generation and repair | | Create bulk / edge-case test data | [handling-sf-data](../handling-sf-data/SKILL.md) | Realistic test datasets | | Deploy updated tests to org | [deploying-metadata](../deploying-metadata/SKILL.md) | Deployment workflows | | Inspect detailed runtime logs | [debugging-apex-logs](../debugging-apex-logs/SKILL.md) | Deeper failure analysis | --- ## Reference File Index | File | When to read | |------|-------------| | `references/cli-commands.md` | All `sf apex run test` command flags, output formats, async execution, and coverage commands | | `references/test-patterns.md` | Test class templates — basic, bulk (251+), mock callout, and data factory patterns | | `references/testing-best-practices.md` | Core testing principles — AAA pattern, naming conventions, bulk, negative, and mock strategies | | `references/test-fix-loop.md` | Agentic test-fix loop implementation and failure analysis decision tree | | `references/mocking-patterns.md` | HttpCalloutMock, DML mocking, StubProvider, and selector mocking patterns | | `references/performance-optimization.md` | Techniques to reduce test execution time — DML mocking, SOQL mocking, loop optimizations | | `assets/basic-test.cls` | Template: standard test class with `@TestSetup`, positive / negative / bulk / edge-case methods | | `assets/bulk-test.cls` | Template: bulk test with 251+ records that crosses the 200-record trigger batch boundary | | `assets/mock-callout-test.cls` | Template: HTTP callout mock using `HttpCalloutMock` | | `assets/test-data-factory.cls` | Template: reusable `TestDataFactory` with create and insert helpers | | `assets/dml-mock.cls` | Template: `IDML` interface + `DMLMock` implementation for database-free unit tests | | `assets/stub-provider-example.cls` | Template: `StubProvider`-based dependency injection stub | | `hooks/scripts/parse-test-results.py` | Post-tool hook — parses `sf apex run test` JSON output and formats failures for the auto-fix loop | --- ## Score Guide | Score | Meaning | |---|---| | 108+ | strong production-grade test confidence | | 96–107 | good test suite with minor gaps | | 84–95 | acceptable but strengthen coverage / assertions | | < 84 | below standard; revise before relying on it |
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.