Untitled

 avatar
unknown
plain_text
2 months ago
1.7 kB
7
Indexable
using Allure.Commons;
using System;
using TechTalk.SpecFlow;

namespace SAPAutomation.steps
{
    [Binding]
    public class AllureContainerHooks
    {
        private const string AllureContextKey = "Allure.Net.Commons.AllureContext";

        [BeforeFeature]
        public static void BeforeFeature(FeatureContext featureContext)
        {
            // Create and store a container ID in the feature context under the key Allure expects.
            string containerId = Guid.NewGuid().ToString();
            featureContext[AllureContextKey] = containerId;

            var container = new TestResultContainer
            {
                uuid = containerId,
                name = featureContext.FeatureInfo.Title
            };

            AllureLifecycle.Instance.StartTestContainer(container);
            Console.WriteLine($"[Allure] Started container for feature: {featureContext.FeatureInfo.Title}");
        }

        [AfterFeature]
        public static void AfterFeature(FeatureContext featureContext)
        {
            if (featureContext.TryGetValue(AllureContextKey, out object containerIdObj) &&
                containerIdObj is string containerId)
            {
                AllureLifecycle.Instance.StopTestContainer(containerId);
                AllureLifecycle.Instance.WriteTestContainer(containerId);
                Console.WriteLine($"[Allure] Closed container for feature: {featureContext.FeatureInfo.Title}");
            }
            else
            {
                Console.WriteLine("[Allure] No container context found in feature context.");
            }
        }
    }
}
Editor is loading...
Leave a Comment