2016-09-02 3 views
0

У меня есть код, который что-то llike это:Specflow BeforeScenario петли

public class SBase 
    { 

     protected IWebDriver driver; 
     [BeforeScenario()] 
     public void SetUp() { 
      driver = new ChromeDriver(); 
      driver.Navigate().GoToUrl("http://abcd.com"); 

     } 

     [AfterScenario()] 
     public void TearDown() 
     { 
      driver.Close(); 
      driver.Quit(); 
     } 

    } 

Когда я запускаю тест это происходит:

Я не знаю почему, но после того, как метод SetUp заканчивается, то Метод SetUp запускается снова и снова, не запускаясь на первом этапе теста.

+0

это ваш класс 'SBase' наследуется каждым шагом класса в вашем проекте? Я так полагаю, и это почти наверняка проблема. У вас нет шагов в классах, которые наследуются, это заставляет их дублировать –

+0

Да, в этом была проблема. Спасибо! –

ответ

-1
[TestFixture] 
public class SBase 
{ 
protected IWebDriver driver; 

    [SetUp] 
    public void SetUp() 
    { 
     driver = new ChromeDriver(); 
     driver.Navigate().GoToUrl("http://abcd.com"); 
    } 

    [TearDown] 
    public void TearDown() 
    { 
     if (driver != null) 
      driver.Quit(); 
    } 

    [Test] 
    public void Test1() 
    { 
    } 

    [Test] 
    public void Test2() 
    { 
    } 
} 

Попробуйте

+0

Да! Это была проблема наследования. –

+0

Большое спасибо! –

+0

Я бы не рекомендовал это делать. Это рецепт для будущих проблем, поскольку specflow больше не отвечает за инициализацию теста –

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