【问题标题】:NUnit Selenium StructureNUnit 硒结构
【发布时间】:2012-03-02 06:15:09
【问题描述】:

我正在尝试使用 NUnit 编写一些 Selenium 测试,并尽我所能保持干净的测试设计(为每个测试测试一件事)。所以我得到了这样的东西

[TestFixture]
public class SomeTest
{
   IWebDriver driver;

   [Setup]
   public void Setup()
   {
       driver = new InternetExplorerDriver();
   }

   [Test]
   public void Test1()
   {
   }

   [Test]
   public void Test2()
   {
   }

   [Teardown]
   public void Teardown()
   {
       driver.Close();
   }
}

现在这很好,但是随着测试数量的增加,事情变得异常缓慢。为每个测试启动和停止整个浏览器是一个瓶颈。

有什么方法可以让浏览器保持打开状态直到最后一次测试?或者也许是更好的方法/设计?

【问题讨论】:

    标签: selenium nunit


    【解决方案1】:

    为了每个夹具只显示一个浏览器,您可以使用 [TestFixtureSetUp] [TestFixtureTearDown] 而不是 [SetUp] 和 [TearDown]:

    [TestFixture]
    public class SomeTest
    {
       IWebDriver driver;
    
       [TestFixtureSetUp]
       public void Setup()
       {
           driver = new InternetExplorerDriver();
       }
    
       [Test]
       public void Test1()
       {
       }
    
       [Test]
       public void Test2()
       {
       }
    
       [TestFixtureTearDown]
       public void Teardown()
      {
           driver.Close();
       }
    }
    

    当然,这对跨灯具没有帮助,但仍然可以带来一些性能提升。

    【讨论】:

    • 完美!旁注:这不适用于 Visual NUnit(适用于 Visual Studio),但可以使用默认的 NUnit 测试运行器
    • 它实际上是 TestFixtureSetUp 而不是 TestFixtureSetup,我对其进行了编辑以修复。
    【解决方案2】:

    您只能创建一种名称中带有“test”的方法。此测试方法将包含调用其他方法(名称中没有“test”)。那些其他方法将是您的测试用例。 每个名称中带有“test”的方法都会导致打开和关闭浏览器。通过使用上述解决方案,您将只打开一次浏览器,并且您将一次性完成所有测试用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-04
      • 2012-04-30
      • 2014-02-19
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多