Untitled

 avatar
unknown
plain_text
2 months ago
1.8 kB
8
Indexable
using System;
using TechTalk.SpecFlow;
using Allure.Commons;
using NUnit.Framework;

namespace SAPAutomation.steps
{
    [Binding]
    public class Hooks
    {
        private readonly ScenarioContext _scenarioContext;
        private static readonly AllureLifecycle allure = AllureLifecycle.Instance;

        public Hooks(ScenarioContext scenarioContext)
        {
            _scenarioContext = scenarioContext;
        }

        [BeforeScenario]
        public void BeforeScenario()
        {
            Console.WriteLine($"[{DateTime.Now}] Running BeforeScenario hook...");

            allure.StartTestCase(new TestResult
            {
                Name = _scenarioContext.ScenarioInfo.Title,
                Start = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
            });
        }

        [AfterScenario]
        public void AfterScenario()
        {
            Console.WriteLine($"[{DateTime.Now}] Running AfterScenario hook...");

            try
            {
                allure.UpdateTestCase(x =>
                {
                    x.status = Status.passed;
                    x.stop = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine($"[{DateTime.Now}] Error Closing SAP: {ex.Message}");
                allure.UpdateTestCase(x =>
                {
                    x.status = Status.failed;
                    x.statusDetails = new StatusDetails { message = ex.Message };
                    x.stop = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                });
            }
            finally
            {
                allure.StopTestCase();
                allure.WriteTestCase();
            }
        }
    }
}
Editor is loading...
Leave a Comment