使用 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.
您需要使用 BeforeScenario
或 BeforeFeature
属性,而不是 NUnit 属性。
我正在尝试使用 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.
您需要使用 BeforeScenario
或 BeforeFeature
属性,而不是 NUnit 属性。