NUnit Selenium结构

时间:2012-03-02 06:15:10

标签: selenium nunit

我正在尝试用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();
   }
}

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

在上次测试之前保持浏览器打开的任何方法?或者更好的方法/设计?

2 个答案:

答案 0 :(得分:3)

为了只为每个灯具启动一个浏览器,您可以使用[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();
   }
}

当然,这对固定装置没有帮助,但仍然可以带来一些性能提升。

答案 1 :(得分:0)

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