Class TestExecutionBatchOptimizer
Optimizes batches of test executions by deduplicating session context. Preserves session context only at session boundaries while maintaining all unique sessions, reducing payload size significantly for large test runs with one or multiple test sessions.
public static class TestExecutionBatchOptimizer
- Inheritance
-
TestExecutionBatchOptimizer
- Inherited Members
Methods
OptimizeForTransport(IEnumerable<TestExecution>)
Optimizes a batch of test executions by deduplicating session context across consecutive executions.
public static IReadOnlyList<TestExecution> OptimizeForTransport(IEnumerable<TestExecution> executions)
Parameters
executionsIEnumerable<TestExecution>The test executions to optimize.
Returns
- IReadOnlyList<TestExecution>
Optimized list where only session boundary executions contain session context.
Remarks
This method intelligently handles multiple test sessions within a batch. It preserves session context only at session boundaries (first occurrence of each unique session), while removing duplicate session references for subsequent executions in the same session. This significantly reduces payload size while maintaining all session information.
Example: If executions have sessions [A,A,A,B,B,C,C,C], the optimized result keeps sessions at positions [0,3,5] and nulls the rest, preserving all three unique sessions.
Exceptions
- ArgumentNullException
Thrown when executions is null.
RehydrateFromTransport(IEnumerable<TestExecution>)
Rehydrates session context for all executions in a batch after receiving from transport.
public static IReadOnlyList<TestExecution> RehydrateFromTransport(IEnumerable<TestExecution> executions)
Parameters
executionsIEnumerable<TestExecution>The test executions received from transport.
Returns
- IReadOnlyList<TestExecution>
List with session context populated for all executions.
Remarks
This method restores session context for all executions by propagating sessions forward from session boundaries. When it encounters an execution with a session context, that session becomes the "current" session and is applied to all subsequent executions until a new session boundary is encountered.
This correctly handles multiple sessions in a batch, ensuring each execution receives the appropriate session context based on the session boundaries preserved during optimization.
Exceptions
- ArgumentNullException
Thrown when executions is null.