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)
}