1namespace Harness.Parallel { 2 export interface RunnerTask { 3 runner: TestRunnerKind; 4 file: string; 5 size: number; 6 } 7 8 export interface UnitTestTask { 9 runner: "unittest"; 10 file: string; 11 size: number; 12 } 13 14 export type Task = RunnerTask | UnitTestTask; 15 16 export interface TestInfo { 17 name: string[]; 18 } 19 20 export interface ErrorInfo { 21 name: string[]; 22 error: string; 23 stack: string; 24 } 25 26 export interface TaskTimeout { 27 duration: number | "reset"; 28 } 29 30 export interface TaskResult { 31 passing: number; 32 errors: ErrorInfo[]; 33 passes: TestInfo[]; 34 duration: number; 35 task: Task; 36 } 37 38 export interface ParallelTestMessage { 39 type: "test"; 40 payload: Task; 41 } 42 43 export interface ParallelBatchMessage { 44 type: "batch"; 45 payload: Task[]; 46 } 47 48 export interface ParallelCloseMessage { 49 type: "close"; 50 } 51 52 export type ParallelHostMessage = ParallelTestMessage | ParallelCloseMessage | ParallelBatchMessage; 53 54 export interface ParallelErrorMessage { 55 type: "error"; 56 payload: { error: string, stack: string, name?: string[] }; 57 } 58 59 export interface ParallelResultMessage { 60 type: "result"; 61 payload: TaskResult; 62 } 63 64 export interface ParallelBatchProgressMessage { 65 type: "progress"; 66 payload: TaskResult; 67 } 68 69 export interface ParallelTimeoutChangeMessage { 70 type: "timeout"; 71 payload: TaskTimeout; 72 } 73 74 export type ParallelClientMessage = ParallelErrorMessage | ParallelResultMessage | ParallelBatchProgressMessage | ParallelTimeoutChangeMessage; 75 76 export function shimNoopTestInterface(global: Mocha.MochaGlobals) { 77 global.before = ts.noop; 78 global.after = ts.noop; 79 global.beforeEach = ts.noop; 80 global.afterEach = ts.noop; 81 global.describe = global.context = ((_: any, __: any) => { /*empty*/ }) as Mocha.SuiteFunction; 82 global.describe.skip = global.xdescribe = global.xcontext = ts.noop as Mocha.PendingSuiteFunction; 83 global.describe.only = ts.noop as Mocha.ExclusiveSuiteFunction; 84 global.it = global.specify = ((_: any, __: any) => { /*empty*/ }) as Mocha.TestFunction; 85 global.it.skip = global.xit = global.xspecify = ts.noop as Mocha.PendingTestFunction; 86 global.it.only = ts.noop as Mocha.ExclusiveTestFunction; 87 } 88} 89