GameplayTestResult: {
    assertions: GameplayTestAssertion[];
    consoleLogs: GameplayTestLog[];
    durationMs: number;
    errors: string[];
    eventLog: GameplayTestEvent[];
    finalState: {
        objectCounts: {
            [objectName: string]: integer;
        };
        sceneName: string;
        sceneVariables: Object[];
        watchedObjects: {
            [objectName: string]: GameplayTestObjectSnapshot[];
        };
    };
    framesExecuted: integer;
    gameTimeMs: number;
    loadingMs: number;
    performance: {
        avgStepMs: number;
        worstStepMs: number;
    } | null;
    profiles: GameplayTestProfilingResult[];
    screenshots: GameplayTestScreenshot[];
    status: "passed" | "failed" | "error" | "stopped" | "timeout";
    testName: string;
    timeoutMs: number;
}

Type declaration

  • assertions: GameplayTestAssertion[]
  • consoleLogs: GameplayTestLog[]
  • durationMs: number
  • errors: string[]
  • eventLog: GameplayTestEvent[]
  • finalState: {
        objectCounts: {
            [objectName: string]: integer;
        };
        sceneName: string;
        sceneVariables: Object[];
        watchedObjects: {
            [objectName: string]: GameplayTestObjectSnapshot[];
        };
    }
  • framesExecuted: integer
  • gameTimeMs: number
  • loadingMs: number

    Time spent waiting for the game to boot and for scene assets to load, excluded from the timeoutMs budget. durationMs includes it: durationMs - loadingMs is what counted against the budget.

  • performance: {
        avgStepMs: number;
        worstStepMs: number;
    } | null
  • profiles: GameplayTestProfilingResult[]

    The stopProfiling() summaries captured during the run.

  • screenshots: GameplayTestScreenshot[]
  • status: "passed" | "failed" | "error" | "stopped" | "timeout"
  • testName: string
  • timeoutMs: number

    The wall-clock budget the run had, loading excluded (durationMs - loadingMs close to it means the test is at risk of timing out on a slower machine).