From 8e2248e504e308cded987dd5831b53f59b859d31 Mon Sep 17 00:00:00 2001 From: Vladimir Semenov Date: Wed, 23 Nov 2022 14:30:06 +0400 Subject: [PATCH 1/5] add cucumber fullname --- .../allure-cucumberjs/src/CucumberJSAllureReporter.ts | 3 ++- .../test/specs/allure_cucumberjs_test.ts | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts index 8a382aab0..c5f68a285 100644 --- a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts +++ b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts @@ -286,12 +286,13 @@ export class CucumberJSAllureFormatter extends Formatter { const links = this.parseTagsLinks(scenario?.tags || []); const currentTest = new AllureTest(this.allureRuntime, Date.now()); const thread = data.workerId || ALLURE_THREAD_NAME || process.pid.toString(); - this.testCaseStartedMap.set(data.id, data); this.testCaseTestStepsResults.set(data.id, []); this.currentTestsMap.set(data.id, currentTest); currentTest.name = pickle.name; + currentTest.fullName = `${pickle.uri}#${pickle.name}`; + currentTest.addLabel(LabelName.HOST, this.hostname); currentTest.addLabel(LabelName.LANGUAGE, "javascript"); currentTest.addLabel(LabelName.FRAMEWORK, "cucumberjs"); diff --git a/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts b/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts index feb59f228..5ec59e34b 100644 --- a/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts +++ b/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts @@ -519,6 +519,17 @@ describe("CucumberJSAllureReporter", () => { expect(severity?.value).eq("bar"); expect(tags).length(1); }); + + it("should set fullName", async () => { + const results = await runFeatures(dataSet.simple); + + expect(results.tests).length(1); + const [testResult] = results.tests; + const source = dataSet.simple.sources?.[0]; + + const name = source!.data.match(/\nScenario: (.+)\n/)?.[1]; + expect(testResult.fullName).eq(`${source!.uri}#${name!}`); + }); }); describe("world", () => { From b1d07ea03aa717607c4c602652b11928c202e04c Mon Sep 17 00:00:00 2001 From: Vladimir Semenov Date: Wed, 23 Nov 2022 14:49:42 +0400 Subject: [PATCH 2/5] testCaseId --- packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts | 1 + packages/allure-js-commons/src/AllureTest.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts index c5f68a285..fd0c38f99 100644 --- a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts +++ b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts @@ -292,6 +292,7 @@ export class CucumberJSAllureFormatter extends Formatter { currentTest.name = pickle.name; currentTest.fullName = `${pickle.uri}#${pickle.name}`; + currentTest.testCaseId = `${pickle.uri}#${pickle.name}`; currentTest.addLabel(LabelName.HOST, this.hostname); currentTest.addLabel(LabelName.LANGUAGE, "javascript"); diff --git a/packages/allure-js-commons/src/AllureTest.ts b/packages/allure-js-commons/src/AllureTest.ts index 89545a9b9..3cb4a0905 100644 --- a/packages/allure-js-commons/src/AllureTest.ts +++ b/packages/allure-js-commons/src/AllureTest.ts @@ -30,6 +30,10 @@ export class AllureTest extends ExecutableItemWrapper { this.testResult.fullName = fullName; } + set testCaseId(testCaseId: string) { + this.testResult.testCaseId = testCaseId; + } + addLabel(name: string, value: string): void { this.testResult.labels.push({ name, value }); } From 4cf032ac44bd1bbdb42e0c14174eb4dd2fa28d6b Mon Sep 17 00:00:00 2001 From: Vladimir Semenov Date: Wed, 23 Nov 2022 14:50:46 +0400 Subject: [PATCH 3/5] optimize --- packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts index fd0c38f99..29b7fc43a 100644 --- a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts +++ b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts @@ -289,10 +289,10 @@ export class CucumberJSAllureFormatter extends Formatter { this.testCaseStartedMap.set(data.id, data); this.testCaseTestStepsResults.set(data.id, []); this.currentTestsMap.set(data.id, currentTest); - + const fullName = `${pickle.uri}#${pickle.name}`; currentTest.name = pickle.name; - currentTest.fullName = `${pickle.uri}#${pickle.name}`; - currentTest.testCaseId = `${pickle.uri}#${pickle.name}`; + currentTest.fullName = fullName; + currentTest.testCaseId = fullName; currentTest.addLabel(LabelName.HOST, this.hostname); currentTest.addLabel(LabelName.LANGUAGE, "javascript"); From 8af1f70e7499b729a91dbaff168e8e8432e959f4 Mon Sep 17 00:00:00 2001 From: Vladimir Semenov Date: Wed, 23 Nov 2022 15:02:11 +0400 Subject: [PATCH 4/5] hash --- packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts | 3 ++- .../allure-cucumberjs/test/specs/allure_cucumberjs_test.ts | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts index 29b7fc43a..ba395ac29 100644 --- a/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts +++ b/packages/allure-cucumberjs/src/CucumberJSAllureReporter.ts @@ -1,3 +1,4 @@ +import { createHash } from "crypto"; import os from "os"; import process from "process"; import { Formatter } from "@cucumber/cucumber"; @@ -292,7 +293,7 @@ export class CucumberJSAllureFormatter extends Formatter { const fullName = `${pickle.uri}#${pickle.name}`; currentTest.name = pickle.name; currentTest.fullName = fullName; - currentTest.testCaseId = fullName; + currentTest.testCaseId = createHash("md5").update(fullName).digest("hex"); currentTest.addLabel(LabelName.HOST, this.hostname); currentTest.addLabel(LabelName.LANGUAGE, "javascript"); diff --git a/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts b/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts index 5ec59e34b..bfb4f0698 100644 --- a/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts +++ b/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts @@ -1,3 +1,4 @@ +import { createHash } from "crypto"; import os from "os"; import process from "process"; import { LabelName, Status } from "allure-js-commons"; @@ -520,7 +521,7 @@ describe("CucumberJSAllureReporter", () => { expect(tags).length(1); }); - it("should set fullName", async () => { + it("should set fullName and testCaseId", async () => { const results = await runFeatures(dataSet.simple); expect(results.tests).length(1); @@ -529,6 +530,9 @@ describe("CucumberJSAllureReporter", () => { const name = source!.data.match(/\nScenario: (.+)\n/)?.[1]; expect(testResult.fullName).eq(`${source!.uri}#${name!}`); + expect(testResult.testCaseId).eq( + createHash("md5").update(`${source!.uri}#${name!}`).digest("hex"), + ); }); }); From 48e5ca23517504680df3e54304be7db90c693fea Mon Sep 17 00:00:00 2001 From: Vladimir Semenov Date: Wed, 23 Nov 2022 15:03:45 +0400 Subject: [PATCH 5/5] hash-tests --- .../allure-cucumberjs/test/specs/allure_cucumberjs_test.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts b/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts index bfb4f0698..bc097d66c 100644 --- a/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts +++ b/packages/allure-cucumberjs/test/specs/allure_cucumberjs_test.ts @@ -529,10 +529,9 @@ describe("CucumberJSAllureReporter", () => { const source = dataSet.simple.sources?.[0]; const name = source!.data.match(/\nScenario: (.+)\n/)?.[1]; - expect(testResult.fullName).eq(`${source!.uri}#${name!}`); - expect(testResult.testCaseId).eq( - createHash("md5").update(`${source!.uri}#${name!}`).digest("hex"), - ); + const fullName = `${source!.uri}#${name!}`; + expect(testResult.fullName).eq(fullName); + expect(testResult.testCaseId).eq(createHash("md5").update(fullName).digest("hex")); }); });