我的SeleniumSteps.cs代码中包含以下代码我正在尝试使AfterScenario在调试这些测试时启动
using PrivateDomain;
using Machine.Specifications;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;
using System.Collections.Generic;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using TechTalk.SpecFlow;
namespace Functional.Steps
{
public class SeleniumSteps : PrivateDomain.Steps.SeleniumSteps
{
#region Hooks
[BeforeScenario]
public void Before()
{
// before
}
[AfterTestRun, Scope(Tag = null)]
public new static void AfterTestRun()
{
// after testrun
}
[AfterScenario]
public void AfterScenarioErrorScreenshot()
{
// after scenario
}
#endregion
}
}
using OpenQA.Selenium;
using TechTalk.SpecFlow;
namespace PrivateDomain.Steps
{
[Binding]
[Scope(Tag = "Selenium")]
public class SeleniumSteps
{
protected static IWebDriver webDriver;
public SeleniumSteps();
public virtual IWebDriver WebDriver { get; }
[AfterTestRun]
[Scope(Tag = null)]
public static void AfterTestRun();
[AfterScenarioAttribute(new[] { })]
public virtual void AfterScenario();
}
}
当我调试测试时,我可以看到调试器触及AfterTestRun部分。但是,BeforeScenario
或AfterScenario
均未执行。
有人可以告诉我我在做什么错吗?
如果钩子方法在具有[Binding]属性的类内,则应执行它们。您检查了一些输出或日志,是否有任何信息?
尝试下一个:
有时规格流陷入困境,并且无法将功能部件文件中的步骤与.cs文件中的实现绑定在一起。然后,我使用这种解决方案使一切正常。
此外,请查看:https://github.com/techtalk/SpecFlow/issues/1741
此主题处理的是放置在基类中的Hook,这些Hook在以后用于继承。