NUnit Selenium Structure - PullRequest
       2

NUnit Selenium Structure

1 голос
/ 02 марта 2012

Я пытаюсь написать несколько тестов Selenium с помощью NUnit и прилагаю все усилия, чтобы сохранить чистую схему тестирования (тестирование по одному для каждого теста). Итак, я получил что-то вроде этого

[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 ]

3 голосов
/ 02 марта 2012

Чтобы вызвать только один браузер для каждого прибора, вы можете использовать [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();
   }
}

Конечно, это не помогает во всех приборах, но все же может дать некоторое повышение производительности.

0 голосов
/ 02 марта 2012

Вы можете создать только один метод с именем test.Этот тестовый метод будет содержать вызов других методов (без «test» в его имени).Эти другие методы будут вашими тестами.Каждый метод с именем «test» в названии вызывает открытие и закрытие браузера.Используя вышеупомянутое решение, вы откроете браузер только один раз и будете выполнять все тесты по одному, один за другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...