packages: .net core 3.1, Specflow 3.8.7
Solution Structure:
I have Step definitions in project UMW.Selenium.UI (A)
namespace UMW.Selenium.UI.Steps { [Binding] public class CalculatorStepDefinitions : UIFramework { UIBrowser uiBrowser; public CalculatorStepDefinitions() { uiBrowser = new UIBrowser(); } [Given(@"the first number is (.*)")] public void GivenTheFirstNumberIs(int p0) { uiBrowser.NavigateToURL("https://demoqa.com/browser-windows"); } } }
I have Hooks (BeforeTestRun, BeforeScenario etc.) in another project Selenium.UI.Framework (B).
namespace Selenium.UI.Framework.Framework.Utilities.ScenarioFactory { using LogBuffer = List<string>; [Binding] [TestClass] public class SetupAndTearDown { internal readonly ScenarioContext _scenarioContext; internal readonly FeatureContext _featureContext; private readonly IObjectContainer _objectContainer; public SetupAndTearDown() { } public SetupAndTearDown(IObjectContainer objectContainer, FeatureContext featureContext, ScenarioContext scenarioContext) { this._objectContainer = objectContainer; _featureContext = featureContext; _scenarioContext = scenarioContext; } [BeforeTestRun] public static void InitializeTestSuite() { ReportsFactory.Report.StartTestSuite(); } [BeforeScenario] public void InitializeTestScenario() { ReportsFactory.Report.StartTestCase(); //_objectContainer.RegisterInstanceAs(Webdriver.Driver); } } }
When I execute scenario from A, it does not call BeforeTestRun/BeforeScenario from B. Here project A uses functions from project B. The test runs successfully bypassing hooks.
Anonymous Asked question May 14, 2021
Recent Comments