Skip to content

Commit b8cc93d

Browse files
authored
add uri for unittest subtests fix "go to test" bug (#24544)
fixes #24532
1 parent 4153f7c commit b8cc93d

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/client/testing/testController/common/resultResolver.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,11 @@ export class PythonResultResolver implements ITestResultResolver {
258258
// clear since subtest items don't persist between runs
259259
clearAllChildren(parentTestItem);
260260
}
261-
const subTestItem = this.testController?.createTestItem(subtestId, subtestId);
261+
const subTestItem = this.testController?.createTestItem(
262+
subtestId,
263+
subtestId,
264+
parentTestItem.uri,
265+
);
262266
// create a new test item for the subtest
263267
if (subTestItem) {
264268
const traceback = data.traceback ?? '';
@@ -293,7 +297,11 @@ export class PythonResultResolver implements ITestResultResolver {
293297
// clear since subtest items don't persist between runs
294298
clearAllChildren(parentTestItem);
295299
}
296-
const subTestItem = this.testController?.createTestItem(subtestId, subtestId);
300+
const subTestItem = this.testController?.createTestItem(
301+
subtestId,
302+
subtestId,
303+
parentTestItem.uri,
304+
);
297305
// create a new test item for the subtest
298306
if (subTestItem) {
299307
parentTestItem.children.add(subTestItem);

src/test/testing/testController/resultResolver.unit.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,10 +344,12 @@ suite('Result Resolver tests', () => {
344344
resultResolver.runIdToTestItem.set(subtestName, mockSubtestItem);
345345

346346
let generatedId: string | undefined;
347+
let generatedUri: Uri | undefined;
347348
testControllerMock
348-
.setup((t) => t.createTestItem(typemoq.It.isAny(), typemoq.It.isAny()))
349+
.setup((t) => t.createTestItem(typemoq.It.isAny(), typemoq.It.isAny(), typemoq.It.isAny()))
349350
.callback((id: string) => {
350351
generatedId = id;
352+
generatedUri = workspaceUri;
351353
traceLog('createTestItem function called with id:', id);
352354
})
353355
.returns(() => ({ id: 'id_this', label: 'label_this', uri: workspaceUri } as TestItem));
@@ -373,6 +375,7 @@ suite('Result Resolver tests', () => {
373375

374376
// verify that the passed function was called for the single test item
375377
assert.ok(generatedId);
378+
assert.strictEqual(generatedUri, workspaceUri);
376379
assert.strictEqual(generatedId, '[subTest with spaces and [brackets]]');
377380
});
378381
test('resolveExecution handles failed tests correctly', async () => {

0 commit comments

Comments
 (0)