From ee7fad9bd22818c5554e72bb2890c94f1495d031 Mon Sep 17 00:00:00 2001 From: kropie Date: Tue, 20 Dec 2022 22:34:34 -0600 Subject: [PATCH 1/2] Fixed how parameterized test methods are sorted to ensure that they use a natural sort. --- src/controller/utils.ts | 2 +- src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts | 4 +++- src/types.ts | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/controller/utils.ts b/src/controller/utils.ts index de54edf3..cdc22cd5 100644 --- a/src/controller/utils.ts +++ b/src/controller/utils.ts @@ -160,7 +160,7 @@ export function createTestItem(metaInfo: IJavaTestItem, parent?: TestItem): Test } if (metaInfo.testLevel === TestLevel.Invocation) { - item.sortText = metaInfo.id; + item.sortText = metaInfo.sortText; } if (parent) { diff --git a/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts b/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts index d27c5bc9..8567c98e 100644 --- a/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts +++ b/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts @@ -245,7 +245,9 @@ export class JUnitRunnerResultAnalyzer extends RunnerResultAnalyzer { projectName: parentData.projectName, testKind: parentData.testKind, testLevel: TestLevel.Invocation, - uniqueId + uniqueId, + // We will just create a string padded with the character "a" to provide easy sorting. + sortText: "".padStart(parent.children.size + 1, "a") }); } } diff --git a/src/types.ts b/src/types.ts index b5355f82..34fbaca7 100644 --- a/src/types.ts +++ b/src/types.ts @@ -14,6 +14,10 @@ export interface IJavaTestItem { projectName: string; testKind: TestKind; testLevel: TestLevel; + /** + * Provides a hint to the UI on how to sort tests. + */ + sortText?: string; /** * Identifies a single invocation of a parameterized test. * Invocations for which a re-run is possible store their own uniqueId which is provided as part of the result. From 2db20cfb8dfb98383021251fb42f7d061146ae01 Mon Sep 17 00:00:00 2001 From: Kropie Date: Wed, 21 Dec 2022 21:08:38 -0600 Subject: [PATCH 2/2] Fixing PR findings. --- src/controller/utils.ts | 2 +- src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/controller/utils.ts b/src/controller/utils.ts index cdc22cd5..8ad9c9ee 100644 --- a/src/controller/utils.ts +++ b/src/controller/utils.ts @@ -160,7 +160,7 @@ export function createTestItem(metaInfo: IJavaTestItem, parent?: TestItem): Test } if (metaInfo.testLevel === TestLevel.Invocation) { - item.sortText = metaInfo.sortText; + item.sortText = metaInfo.sortText ?? metaInfo.id; } if (parent) { diff --git a/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts b/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts index 8567c98e..7c5939e9 100644 --- a/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts +++ b/src/runners/junitRunner/JUnitRunnerResultAnalyzer.ts @@ -247,7 +247,7 @@ export class JUnitRunnerResultAnalyzer extends RunnerResultAnalyzer { testLevel: TestLevel.Invocation, uniqueId, // We will just create a string padded with the character "a" to provide easy sorting. - sortText: "".padStart(parent.children.size + 1, "a") + sortText: ''.padStart(parent.children.size + 1, 'a') }); } }