For Salesforce Apex teams

Run only the Apex tests your change can reach.

LATdx maps which Apex each test reaches. Change a class and the tests that touch it run on your org; tests whose inputs haven't changed return their last result.

Install the CLI
curl -fsSL https://latdx.com/install.sh | bash
Read the docs

Free for 100 tests per run · no sign-up · checksum-verified install

Simulated run

Parity-tested on open-source Apex projects

Each link opens the project at the commit it is pinned to. The parity suite checks LATdx's results on it against Salesforce's own run of the same tests. These are public test fixtures, not customers.

How it saves time

Run what changed. Reuse what didn't.

Test selection

Run the tests your Apex change reaches

LATdx maps the Apex each test method statically reaches. Point it at a git diff and it runs only the methods whose reach touches a changed class.

latdx test run --affected

Metadata-only changes such as flows, validation rules and permission sets are not used for selection yet. Run the full suite when they change.

Result cache

Skip tests whose inputs are unchanged

Each test method gets a fingerprint of the code and tracked metadata it reaches. When the fingerprint matches a stored result for the same org, LATdx returns that result instead of running the test.

latdx test run -o my-org

On by default. Turn it off for one run with --no-cache.

Known limitations of selection and caching

Install

Install in one line

One command puts latdx on your PATH. The same CLI runs in your pipeline.

Local CLI

On your machine

A single binary for your terminal. It caches Apex test results and skips reruns whose inputs did not change.

curl -fsSL https://latdx.com/install.sh | bash

Checksum-verified binaryView install.shRelease notes

Then: latdx test run -o <org>

Needs a Salesforce DX project (sfdx-project.json), an authenticated sf CLI and Java 11+ on PATH. Quickstart

How it works

Rerun what changed. Reuse what didn't.

Every test method gets a fingerprint of the Apex it reaches and your tracked metadata. Same fingerprint, the result is reused. Different, the test runs on your org.

AccountServiceTest

AccountTriggerTest

Step 1 of 9

LATdx parses your Apex into a graph. testHappyPath() calls validate() and save(), so that is its reach.

Not traced yet: Apex called by name at runtime (Type.forName, Callable). Known limitations

FAQ

The hard cases

What the cache does when a change sits outside what it can see.

Pricing

Simple pricing for developers and CI

Start free with no card. Upgrade when you need unlimited tests on your machine or in CI.

Early-access rate, locked while you subscribe

Every plan includes method-level caching, live test results and affected-test selection.

Free

For trying LATdx on your own suite.

$0forever

No sign-up or card required.

  • 100 tests per run
  • Not included: Unlimited CI runs

Pro

Recommended

For developers on their own machine.

$10/ month

Billed monthly, per seat.

  • Unlimited tests per run
  • Not included: Unlimited CI runs

Team

For teams that run Apex tests in CI.

$100/ month

5 seats included, $10 per extra seat.

Pro seats
  • Unlimited tests per run
  • Unlimited CI runs
  • Cancel anytime
  • No card for Free
  • Seat changes prorated
  • Early-access price locked

Larger org or procurement process?

Talk to us about more than 250 seats, billing and your security review.

Book 30 min

Compare all plans

FAQ

Common questions

Try it on your own suite

One line installs the CLI. Then point latdx test run at your org.

curl -fsSL https://latdx.com/install.sh | bash