public final class TestCaseBindingResolver
Resolution pass of STUDIO-10952: expands one deferred TestCaseBinding (carrying a TestCaseBindingSpec) into fully-resolved per-iteration bindings, reading Test Data through TestDataFactory at the moment the test case is about to execute. Test Data modified by earlier test cases in the same suite run is therefore picked up.
The row-combination math mirrors the planner's TestCaseBindingBuilder; values are
emitted in the same Groovy-literal format the planner used, so the downstream evaluation in
CommonExecutor#accessTestCaseMainPhaseLoop is unchanged.
| Modifiers | Name | Description |
|---|---|---|
interface |
TestCaseBindingResolver.TestDataLookup |
How a test data id is turned into data; lets a caller outside the runner supply its own source. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public static int |
countIterations(TestCaseBindingSpec spec, String testCaseId, TestCaseBindingResolver.TestDataLookup testDataLookup)How many iterations this spec is to be run as against the data available right now. |
|
public static List<TestCaseBinding> |
resolve(TestCaseBinding planned)Resolves a binding-file entry into the list of iterations to execute. |
How many iterations this spec is to be run as against the data available right now. Lets a caller size the work before launching it - notably parallel execution, which has to create one process per iteration up front.
The retry selection is applied, because that is what the subprocesses will run; the single-slice marker is not, because this counts the whole plan rather than one slice of it.
Resolves a binding-file entry into the list of iterations to execute.
Entries without a spec (static bindings) pass through unchanged.