使用 SpecFlow 时,C# NUnit SetUp 和 TearDown 函数不是 运行

C# NUnit SetUp and TearDown functions not running when using SpecFlow

我正在尝试使用 NUnit 和 selenium 创建自动化测试,但是我无法使用 SetUp 和 TearDown 函数。

[Binding] [SetUpFixture]
public class AuthenticatorSteps
{
    IWebDriver _driver;
    WebDriverWait wait;
    string username;
    string password;

    [SetUp]
    public void SetUp()
    {
        _driver = new ChromeDriver();
        wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(10));
    }

    [TearDown]
    public void TearDown()
    {
        _driver.Close();
    }

[Given(@"I am on the site")]
        public void GivenIAmOnTheSite()
        {
            _driver.Manage().Window.Maximize();
            _driver.Navigate().GoToUrl("https://qa02-ukcasino.bedegaming.net");
            wait.Until(x => x.FindElement(By.CssSelector(AuthenticatorElements.LoginButton)));
        }

他们只是根本没有被召唤。如果我将它们放在步骤本身中,我正在使用的代码就可以工作,但是这需要我添加一个步骤,例如。然后浏览器应该关闭,此时我应该可以使用 TearDown 功能。

这是单元测试吗?
把你[SetUpFixture]变成[TestFixture].
(注意:如果您使用的是 NUnit 2.5 或更高版本,您可以删除 [TestFixture])

后者用于一次性设置,前者用于每次测试的设置。

这是 SpecFlow 测试吗?
我还假设您已将 SpecFlows 测试运行器设置为 NUnit.

您需要使用 BeforeScenarioBeforeFeature 属性,而不是 NUnit 属性。