【问题标题】:NUnit 3 retry test n timesNUnit 3 重试测试 n 次
【发布时间】:2019-06-13 15:19:04
【问题描述】:

我想从头开始运行测试 n 次,即退出驱动程序并再次运行设置。但是重试属性不会退出驱动程序,它只是再次运行测试用例。

[TestFixture(typeof(ChromeDriver))]
public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new()
{
    #region Setup
    private IWebDriver driver;

    [TestFixtureSetUp]
    public void CreateDriver()
    {
        if (typeof(TWebDriver).Name == "ChromeDriver")
        {
            driver = new ChromeDriver(@"C:\ChromeDriver");
        }
        else
        {
            driver = new TWebDriver();
        }
    }
    [TestFixtureTearDown]
    public void FixtureTearDown()
    {
        if (driver != null) driver.Quit();
    }
    [Test,Retry(2)]
    [TestCase("jobsearch")]
    [TestCase("employer")]
    public void GoogleTest(string search)
    {
        driver.Navigate().GoToUrl("http://www.google.com/");
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys(search + Keys.Enter);
        Thread.Sleep(1000);
        Assert.AreEqual(search + " - Google Search", driver.Title);
    }
    #endregion
}

【问题讨论】:

  • 是否可以从命令行运行测试?

标签: c# .net selenium-webdriver nunit


【解决方案1】:

我想从头开始运行测试 n 次,即退出驱动程序并再次运行设置。

CreateDriver 方法没有被再次调用的原因是因为您使用了[TestFixtureSetUp] 属性,该属性只为[TestFixture] 运行一次。如果您想在每次测试之前运行设置方法,请改用[Setup] 属性。

[TestFixtureTearDown] 属性也是如此。如果每次测试后都发生这种情况,则应改用[TearDown] 属性。

【讨论】:

  • 设置成功,谢谢,重试属性运行测试即使测试第一次通过,我的目标是只有在失败时重试测试
  • @delwasafewrew 只有在测试失败时才会重试。你可以看看实现。 github.com/nunit/nunit/blob/master/src/NUnitFramework/framework/…。您的情况可能还有其他原因。
  • 根据文档,它应该只在测试失败时重试,但即使测试通过,上面的代码似乎也能运行。我正在使用 Nunit 版本 3
  • @delwasafewrew 只是为了完成答案并支持 Kote 的评论,您还应该使用 Repeat 属性 ([link]github.com/nunit/docs/wiki/Repeat-Attribute) 重复 n 次测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 2015-11-27
相关资源
最近更新 更多