From 707e01cda90bfdf24ac7458a3e3e12d08def4c4f Mon Sep 17 00:00:00 2001 From: Christopher Dwyer-Perkins Date: Fri, 10 Jan 2025 15:30:29 -0400 Subject: [PATCH] Fixed some issues with skipped tests --- .../src/lib/rooibos/RooibosSessionInfo.ts | 13 ++++++++++--- bsc-plugin/src/lib/rooibos/TestGroup.ts | 5 ++--- bsc-plugin/src/lib/rooibos/TestSuite.ts | 4 ++++ framework/src/source/TestGroup.bs | 18 +++++++++++++++++- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/bsc-plugin/src/lib/rooibos/RooibosSessionInfo.ts b/bsc-plugin/src/lib/rooibos/RooibosSessionInfo.ts index 8bccf78d..8f65f3d6 100644 --- a/bsc-plugin/src/lib/rooibos/RooibosSessionInfo.ts +++ b/bsc-plugin/src/lib/rooibos/RooibosSessionInfo.ts @@ -77,7 +77,7 @@ export class SessionInfo { } else if (this.hasSoloSuites && !testSuite.isSolo) { testSuite.isIncluded = false; } else if (testSuite.isIgnored) { - // testSuite.isIncluded = false; + testSuite.isIncluded = true; this.ignoredTestNames.push(testSuite.name + ' [WHOLE SUITE]'); this.ignoredCount++; } else { @@ -88,12 +88,15 @@ export class SessionInfo { } //'testSuite ' + testSuite.name); for (let testGroup of testSuite.getTestGroups()) { + if (testSuite.isIgnored) { + testGroup.isIgnored = true; + } //'GROUP ' + testGroup.name); if (testGroup.isIgnored) { this.ignoredCount += testGroup.ignoredTestCases.length; this.ignoredTestNames.push(testGroup.name + ' [WHOLE GROUP]'); - testGroup.isIncluded = false; + testGroup.isIncluded = true; } if (testGroup.ignoredTestCases.length > 0) { @@ -126,10 +129,14 @@ export class SessionInfo { let testCases = [...testGroup.testCases.values()]; for (let testCase of testCases) { + if (testGroup.isIgnored) { + testCase.isIgnored = true; + } + if (this.isExcludedByTag(testCase, true)) { testCase.isIncluded = false; } else if (testCase.isIgnored) { - testCase.isIncluded = false; + testCase.isIncluded = true; } else if (this.hasSoloTests && !testCase.isSolo) { testCase.isIncluded = false; } else { diff --git a/bsc-plugin/src/lib/rooibos/TestGroup.ts b/bsc-plugin/src/lib/rooibos/TestGroup.ts index 93273d23..1d7f9cce 100644 --- a/bsc-plugin/src/lib/rooibos/TestGroup.ts +++ b/bsc-plugin/src/lib/rooibos/TestGroup.ts @@ -32,9 +32,8 @@ export class TestGroup extends TestBlock { if (testCase.isIgnored) { this.ignoredTestCases.push(testCase); this.hasIgnoredTests = true; - } - - if (testCase.isSolo) { + this.soloTestCases.push(testCase); + } else if (testCase.isSolo) { this.hasSoloTests = true; this.soloTestCases.push(testCase); this.hasAsyncTests = testCase.isAsync; diff --git a/bsc-plugin/src/lib/rooibos/TestSuite.ts b/bsc-plugin/src/lib/rooibos/TestSuite.ts index 724fdd51..256e115e 100644 --- a/bsc-plugin/src/lib/rooibos/TestSuite.ts +++ b/bsc-plugin/src/lib/rooibos/TestSuite.ts @@ -46,6 +46,10 @@ export class TestBlock { return this.annotation.isIgnore; } + public set isIgnored(value: boolean) { + this.annotation.isIgnore = value; + } + public isValid = false; public isIncluded = false; diff --git a/framework/src/source/TestGroup.bs b/framework/src/source/TestGroup.bs index db80b55b..8d665e35 100644 --- a/framework/src/source/TestGroup.bs +++ b/framework/src/source/TestGroup.bs @@ -81,6 +81,14 @@ namespace rooibos test = new rooibos.Test(m, testData) m.tests.push(test) + if test.isIgnored + m.notifyReportersOnTestBegin(test) + m.testSuite.runTest(test) + m.notifyReportersOnTestComplete(test) + m.stats.appendTestResult(test.result) + continue for + end if + isOk = m.runSuiteFunction(m.beforeEachFunctionName, "beforeEach", test) if isOk @@ -135,11 +143,19 @@ namespace rooibos 'finished m.finishAsyncTests() else + test = m.currentTest + if test.isIgnored + m.notifyReportersOnTestBegin(test) + m.testSuite.runTest(test) + m.testRunner.top.rooibosTestFinished = true + m.onAsyncTestComplete() + return invalid + end if + m.testRunner.top.rooibosTestFinished = false isOk = m.runSuiteFunction(m.beforeEachFunctionName, "beforeEach", m.currentTest) if isOk 'TODO - set a timeout here - test = m.currentTest if test.isAsync <> true ? "Executing test synchronously" m.notifyReportersOnTestBegin(test)