platform-apex-test-run

forcedotcom/sf-skills
631 installs655 stars

Installation

npx skills add https://github.com/forcedotcom/sf-skills --skill platform-apex-test-run

Summary

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 platform-apex-generate), Agentforce agent testing (use agentforce-test), or Jest/LWC tests (use experience-lwc-generate).

SKILL.md

platform-apex-test-run: 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 platform-apex-test-run 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 → platform-apex-generate skill
  • testing Agentforce agents → agentforce-test skill
  • testing LWC with Jest → experience-lwc-generate

---

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 platform-apex-generate 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

RuleRationale
Default to SeeAllData=falseEnsures test isolation; prevents reliance on org-specific data
Every test must assert meaningful outcomesTests with no assertions prove nothing and give false confidence
Test bulk behavior with 251+ recordsTriggers process in batches of 200; 251 records crosses the boundary
Use factories / @TestSetup when they improve clarityConsistent data creation in one place; rolled back between test methods
Pair Test.startTest() with Test.stopTest() for asyncEnsures async operations (queueable, future) complete before assertions
Do not hide flaky org dependencies inside testsPrevents intermittent failures tied to org state

---

Gotchas

IssueResolution
Test passes locally but fails in CI orgCheck for SeeAllData=true or undeclared dependencies on org-specific records
Coverage drops unexpectedly after refactorRun focused class-level tests first, then widen to RunLocalTests to confirm
"Uncommitted work pending" error in callout testDML and HTTP callouts cannot be mixed in the same test context without Test.startTest() wrapping
Mock not taking effect in testEnsure 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:

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

NeedDelegate toReason
Fix production code or author test classesplatform-apex-generate skillCode generation and repair
Create bulk / edge-case test dataplatform-data-manageRealistic test datasets
Deploy updated tests to orgplatform-metadata-deployDeployment workflows
Inspect detailed runtime logsplatform-apex-logs-debugDeeper failure analysis

---

Reference File Index

FileWhen to read
references/cli-commands.mdAll sf apex run test command flags, output formats, async execution, and coverage commands
references/test-patterns.mdTest class templates — basic, bulk (251+), mock callout, and data factory patterns
references/testing-best-practices.mdCore testing principles — AAA pattern, naming conventions, bulk, negative, and mock strategies
references/test-fix-loop.mdAgentic test-fix loop implementation and failure analysis decision tree
references/mocking-patterns.mdHttpCalloutMock, DML mocking, StubProvider, and selector mocking patterns
references/performance-optimization.mdTechniques to reduce test execution time — DML mocking, SOQL mocking, loop optimizations
assets/basic-test.clsTemplate: standard test class with @TestSetup, positive / negative / bulk / edge-case methods
assets/bulk-test.clsTemplate: bulk test with 251+ records that crosses the 200-record trigger batch boundary
assets/mock-callout-test.clsTemplate: HTTP callout mock using HttpCalloutMock
assets/test-data-factory.clsTemplate: reusable TestDataFactory with create and insert helpers
assets/dml-mock.clsTemplate: IDML interface + DMLMock implementation for database-free unit tests
assets/stub-provider-example.clsTemplate: StubProvider-based dependency injection stub
scripts/parse-test-results.pyPost-tool hook — parses sf apex run test JSON output and formats failures for the auto-fix loop

---

Score Guide

ScoreMeaning
108+strong production-grade test confidence
96–107good test suite with minor gaps
84–95acceptable but strengthen coverage / assertions
< 84below standard; revise before relying on it

Recommended skills

Browse all →