Table of Contents
A Salesforce CLI plugin that extracts Apex test class names from git commit messages, enabling incremental test execution during deployments.
This plugin helps you:
✅ Automate test selection based on commit history
✅ Ensure critical tests run before deployment
✅ Seamlessly integrate with sfdx-git-delta
sf plugins install [email protected]
Requires git to be installed and that it can be called using the command git
.
Create a .apextestsgitdeltarc
file in your Salesforce DX project root with the regular expression:
[Aa][Pp][Ee][Xx]::(.*?)::[Aa][Pp][Ee][Xx]
fix: update triggers Apex::AccountTriggerHandlerTest OpportunityTriggerHandlerTest::Apex
chore: add sandbox setup Apex::PrepareMySandboxTest::Apex
fix: resolve quoting issues Apex::QuoteControllerTest::Apex
sf atgd delta --from "HEAD~1" --to "HEAD"
✅ Output (alphabetically sorted, space-separated test classes):
AccountTriggerHandlerTest OpportunityTriggerHandlerTest PrepareMySandboxTest QuoteControllerTest
sf project deploy start -x package/package.xml -l RunSpecifiedTests -t $(sf atgd delta --from "HEAD~1" --to "HEAD")
sfdx-git-delta is great for identifying changed Apex classes, but running only those modified tests may not be enough. Other dependencies or testing strategies may require additional tests.
This plugin lets you define which tests to run for each commit, ensuring better coverage. It seamlessly integrates with sfdx-git-delta
using the same --from
and --to
SHA arguments.
sf atgd delta
USAGE
$ sf atgd delta -f <value> -t <value> -v [--json]
FLAGS
-f, --from=<value> Commit SHA from where the commit message log is done.
This SHA's commit message will not be included in the results.
-t, --to=<value> Commit SHA to where the commit message log is done.
[default: HEAD]
-v, --skip-test-validation Skip validating that tests exist in the local package directories.
[default: false]
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Parse commit messages over a range and return the Apex tests to deploy against.
EXAMPLES
Get tests from the most recent commit, confirming they exist in the local package directories.
$ sf atgd delta --from "HEAD~1" --to "HEAD"
Get tests from the most recent commit, skipping the local package directory validation.
$ sf atgd delta --from "HEAD~1" --to "HEAD" -v
Plugin | Approach |
---|---|
apex-tests-git-delta | Extracts test classes from commit messages |
sfdx-git-delta | Run modified Apex classes |
apex-test-list | Uses test annotations in Apex files |
If you encounter any issues or would like to suggest features, please create an issue.
This project is licensed under the MIT license. Please see the LICENSE file for details.