Nested tests in depth
How Run Test composes flows from smaller tests, with cycle detection, parameter substitution at call time, and run history attribution that survives nesting.
Run Test is the composition primitive. This page covers the behavior you can rely on when one test calls another.
Run history attribution
Run history is attributed to the called test, not to a per-call copy. A login test called by 30 other tests shows up as one row in analytics, and its history page lists every run regardless of whether it was triggered directly or via a Run Test step.
Cycles
If you accidentally author a cycle (Test A → Test B → Test A), Mavster refuses to recurse into a test that's already running. There are no infinite loops.
Run Count semantics
The Run Count on the Run Test step trumps the called test's own Run Count. If your called test sets Run Count 5 on itself but a Run Test step calls it with Run Count 1, you get one run per call.
The first failed sub-run terminates the remaining sub-runs and marks the Run Test step failed.
Parameter flow
When you run a test standalone via its Play button, the test uses the values in its header. When the same test is invoked through a Run Test step, only the Run Test step's arguments are used — the header values are ignored.
Practical consequences:
- A Run Test step's arguments overwrite the called test's header values for that call.
- There is no automatic flow from the parent test's parameters into the called test. If the parent has
$userand you want the called test to see it, adduser = $userto the Run Test step's arguments — the parent's$useris substituted into the argument before the call dispatches. - Placeholders the Run Test step doesn't pass an argument for stay unsubstituted at runtime. Forward every parameter you care about explicitly.
Self-healing inheritance
The called test inherits the parent test's self-healing mode if it doesn't have its own override.
Common compositional patterns
- Setup / teardown wrappers. Author
setupandteardowntests; have every other test start with a Run Test (setup) step. - Smoke suites. A
smoketest composed entirely of Run Test steps, each calling a feature-area test. Failures localize to the failing feature. - Data-driven matrices. Run Test the same parameterized test multiple times in the parent, each call with different arguments.
