From 40adb277995f9b592fd0d437b4b22df2f04388f9 Mon Sep 17 00:00:00 2001 From: Christopher Hiller Date: Wed, 11 Nov 2020 10:38:43 -0800 Subject: [PATCH] dispose Mocha Runner after use to avoid MaxlistenersExceededWarning (#41403) * dispose Mocha Runner after use to avoid MaxlistenersExceededWarning - removed manual `unhandledRejection` listener as Mocha v8.2.0 now has one * Remove ts-ignore comment and commented out line. Co-authored-by: Daniel Rosenwasser --- src/testRunner/parallel/worker.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/testRunner/parallel/worker.ts b/src/testRunner/parallel/worker.ts index dd8add3050d..21570ab3e1e 100644 --- a/src/testRunner/parallel/worker.ts +++ b/src/testRunner/parallel/worker.ts @@ -210,12 +210,10 @@ namespace Harness.Parallel.Worker { const passes: TestInfo[] = []; const start = +new Date(); const runner = new Mocha.Runner(suite, /*delay*/ false); - const uncaught = (err: any) => runner.uncaught(err); runner .on("start", () => { unhookUncaughtExceptions(); // turn off global uncaught handling - process.on("unhandledRejection", uncaught); // turn on unhandled rejection handling (not currently handled in mocha) }) .on("pass", (test: Mocha.Test) => { passes.push({ name: test.titlePath() }); @@ -224,8 +222,8 @@ namespace Harness.Parallel.Worker { errors.push({ name: test.titlePath(), error: err.message, stack: err.stack }); }) .on("end", () => { - process.removeListener("unhandledRejection", uncaught); hookUncaughtExceptions(); + runner.dispose(); }) .run(() => { fn({ task, errors, passes, passing: passes.length, duration: +new Date() - start });