Skip to main content
Dependency graph view of producer/consumer relationships

What Dependency Chains Are

When tests share dynamic variables, they form a chain of producers and consumers: A producer always runs before the tests that use its values, and TestSprite orders the run accordingly. Auto Cleanup follows the same dependencies in reverse: children first, then parents.

How TestSprite Runs Your Tests

Independent tests run in parallel; tests that depend on others wait until the values they need are available. A 50-test plan with several dependency layers finishes in roughly the time of its slowest layer, not 50× the average.

Test Status During a Run

Blocked is not Failed. A Blocked test never ran, so it isn’t a bug in your API. It’s a symptom of a Failed test upstream; start triage there.

Where to See the Dependency Graph

Each test’s Data Flow section shows what it captures and consumes. A run’s Dynamic Variables tab lists every variable with its Source (producer) and Used by (consumers). For one integration chain, its detail page shows the steps in run order.

Circular Dependencies

If two tests need values from each other, the chain can’t be assembled. TestSprite reports “Could not assemble — circular dependency between X and Y”, and you’ll need to refine in chat. This is rare and usually points to an API design issue.

Multiple Producers for the Same Variable

If two tests produce the same variable name (e.g., both POST /users and POST /admins produce user_id), TestSprite picks one consistently for downstream consumers. To disambiguate:

When an Earlier Test Fails

Anything that depends on a failed test’s values is Blocked:
The matching cleanup is marked Skipped too, since the record was never created. Fix the failing test (or your API), then rerun the chain: TestSprite re-runs the failing test and its Blocked downstream tests.

Edge Cases & Troubleshooting

Open the Blocked test; the error trace names the missing variable. Search the Dynamic Variables tab for it to find the producer, which will be Failed.
They already do. If runs look serial, your tests probably all share one upstream (typically a user_id from a single POST /users). Refine in chat to produce a small pool of users instead.
That’s a variable resolution issue, not a dependency issue. See Dynamic Variables: Troubleshooting.
This shouldn’t happen. If it does, check the chain’s order in the Integration Tests tab and refine in chat: “The chain order should be POST /users → POST /sessions → POST /orders”.

Where to Go Next

Dynamic Variables

Values produced by one test and used by another

Auto Cleanup

Records created during a run get removed afterward

Integration Tests

Multi-step chains where one test’s output feeds the next

Rerun

Per-test and per-chain reruns