2016-08-12 2 views
0

Мне нужна хорошая практика для решения моей проблемы.Как настроить среду перед запуском автоматических тестов?

Вопрос: Мне нужно запустить автоматические тесты с сайта. Сайт имеет разные конфигурации, которые полностью меняют его дизайн (на некоторых страницах). Например, я могу настроить 2 разных страницы входа. И мне нужно проверить их обоих.

Прежде всего Я должен убедиться, что правильный тест выполняется с правильной конфигурацией. Поэтому перед каждым тестом мне нужно изменить конфигурацию сайта. Это не хорошо, если у меня есть тысяча тестов.

Итак, решение, которое приходит мне на ум, - это, чтобы каждый раз не перенастраивать сайт, а делать это один раз и запускать все тесты, соответствующие этой конфигурации. Но это решение мне не кажется легким.

На данный момент я сделал следующее: Я создал метод, который запускается один раз перед всеми другими тестами, и в этом методе я настраиваю сайт для создания конфигурации, которая используется в большинстве тестов. Все остальные тесты теперь изменяют конфигурацию перед исполнением, а после выполнения они меняют ее. Это не хорошо.

Для этого я использовал NUnit3 SetUpFixture и OneTimeSetUp атрибуты:

/// <summary> 
    /// Runs once before all the test in order to config the environment 
    /// </summary> 
    [SetUpFixture] 
    public class ConfigTests 
    { 
     [OneTimeSetUp] 
     public void RunBeforeAnyTests() 
     { 
      IWebDriver driver = new ChromeDriver(); 
      try 
      { 
       //Here I config the stie 
       CommonActions actions = new CommonActions(driver); 
       actions.SwitchOffCombinedPaymentPage(); 
       driver.Dispose(); 
      } 
      catch (Exception) 
      { 
       driver.Dispose(); 
      } 
     } 
    } 

То, что я думал, что после того, как это, что я буду иметь возможность отправить параметры SetUpFixture, но в первую очередь это невозможно и во-вторых, это не решит проблему, так как эта функция будет запускаться дважды, и тесты будут выполняться против последней конфигурации.

Итак, ребята, как бороться с тестированием сайта, который имеет множество конфигураций?

ответ

1

Я бы использовал параметр тестового запуска из командной строки (или в файле .runsettings, если вы используете VS-адаптер). SetUpFixture может захватить этот параметр и выполнить инициализацию и любые индивидуальные приборы, которые в ней нуждаются может также захватить его.

См. Параметр --params для nunit3-console и свойство TestContext.TestParameters для доступа к значениям.

Это отвечает на вашу «прежде всего невозможную» часть. Я не ответил «во-вторых ...», потому что я этого не понимаю. Я добавлю больше, если вы сможете уточнить.

Смежные вопросы