Untitled
unknown
plain_text
2 months ago
2.8 kB
7
Indexable
using Allure.Commons; using System; using TechTalk.SpecFlow; using SAPAutomation.utils; namespace SAPAutomation.steps { [Binding] // ✅ REQUIRED for SpecFlow to detect Hooks! public class Hooks { private readonly ScenarioContext _scenarioContext; private readonly FeatureContext _featureContext; public Hooks(ScenarioContext scenarioContext, FeatureContext featureContext) { _scenarioContext = scenarioContext; _featureContext = featureContext; } [BeforeTestRun] public static void BeforeTestRun() { Console.WriteLine("[DEBUG] Running BeforeTestRun Hook."); AllureLifecycle.Instance.CleanupResultDirectory(); // Clean previous Allure results } [BeforeFeature] public void BeforeFeature() { Console.WriteLine($"[DEBUG] Running BeforeFeature Hook: {_featureContext.FeatureInfo.Title}"); if (!_featureContext.ContainsKey("Allure.Net.Commons.AllureContext")) { string containerId = Guid.NewGuid().ToString(); _featureContext["Allure.Net.Commons.AllureContext"] = containerId; var container = new TestResultContainer { uuid = containerId, name = _featureContext.FeatureInfo.Title }; AllureLifecycle.Instance.StartTestContainer(container); Console.WriteLine($"[DEBUG] Created Allure Test Container: {containerId}"); } } [BeforeScenario] public void BeforeScenario() { Console.WriteLine($"[DEBUG] Running BeforeScenario Hook: {_scenarioContext.ScenarioInfo.Title}"); if (!_featureContext.TryGetValue("Allure.Net.Commons.AllureContext", out string featureContainerId)) { Console.WriteLine("[WARNING] AllureContext missing! Initializing..."); featureContainerId = Guid.NewGuid().ToString(); _featureContext["Allure.Net.Commons.AllureContext"] = featureContainerId; } string testUuid = Guid.NewGuid().ToString(); _scenarioContext["AllureTestUuid"] = testUuid; var testResult = new TestResult { uuid = testUuid, name = _scenarioContext.ScenarioInfo.Title, start = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() }; AllureLifecycle.Instance.StartTestCase(testResult); AllureLifecycle.Instance.UpdateTestContainer(featureContainerId, container => { container.children.Add(testUuid); }); } } }
Editor is loading...
Leave a Comment