message: Dispose the disposables in a finally block
diff: @@ -245,14 +245,18 @@ export default class TestManager extends AbstractProvider {
  TargetFrameworkVersion: targetFrameworkVersion
  };
  + try {
  let response = await serverUtils.debugTestGetStartInfo(this._server, request);
  - listener.dispose();
  return this._createLaunchConfiguration(
  response.FileName,
  response.Arguments,
  response.WorkingDirectory,
  debugEventListener.pipePath());
  }
  + finally {
  + listener.dispose();
  + }
  + }
  private async _getLaunchConfigurationForLegacy(fileName: string, testMethod: string, testFrameworkName: string, targetFrameworkVersion: string): Promise<LaunchConfiguration> {
  @@ -268,10 +272,14 @@ export default class TestManager extends AbstractProvider {
  TargetFrameworkVersion: targetFrameworkVersion
  };
  + try {
  let response = await serverUtils.getTestStartInfo(this._server, request);
  - listener.dispose();
  return this._createLaunchConfiguration(response.Executable, response.Argument, response.WorkingDirectory, null);
  }
  + finally {
  + listener.dispose();
  + }
  + }
  private async _getLaunchConfiguration(
  debugType: string,
  @@ -388,10 +396,14 @@ export default class TestManager extends AbstractProvider {
  TargetFrameworkVersion: targetFrameworkVersion
  };
  + try {
  let response = await serverUtils.debugTestClassGetStartInfo(this._server, request);
  - listener.dispose();
  return this._createLaunchConfiguration(response.FileName, response.Arguments, response.WorkingDirectory, debugEventListener.pipePath());
  }
  + finally {
  + listener.dispose();
  + }
  + }
  }
  class DebugEventListener {
  @@ -504,9 +516,13 @@ class DebugEventListener {
  this._eventStream.post(new DotNetTestMessage(e.Message));
  });
  + try {
  await serverUtils.debugTestLaunch(this._server, request);
  + }
  + finally {
  disposable.dispose();
  }
  + }
  private onDebuggingStopped(): void {
  if (this._isClosed) {
  