private async runTestCase()

in src/test-runner/runner.ts [82:118]


  private async runTestCase(
    item: vscode.TestItem,
    runTracker: TestRunTracker,
    conn: MessageConnection,
    cancelToken: vscode.CancellationToken
  ) {
    const testInfo = this.testCaseStore.testCaseMetadata.get(item)
    if (!testInfo) return
    const params = testInfo.prepareTestRunParams(runTracker)
    if (params === undefined) {
      return
    }

    let result: bsp.TestResult | undefined
    try {
      result = await conn.sendRequest(
        bsp.BuildTargetTest.type,
        params,
        cancelToken
      )
    } catch (e) {
      if (e.code === CANCEL_ERROR_CODE) {
        runTracker.updateStatus(
          item,
          TestCaseStatus.Errored,
          new vscode.TestMessage(
            `Testing canceled by user during run of ${item.label}.`
          )
        )
        return
      } else {
        throw e
      }
    }

    if (result) testInfo.processTestRunResult(runTracker, result)
  }