Can I have multiple @BeforeMethod's that will run only for the groups they belong to?

StackOverflow https://stackoverflow.com/questions/14861649

  •  09-03-2022
  •  | 
  •  

Вопрос

@BeforeMethod (groups={"a"})
public void setup1() {
    //do something
}

@BeforeMethod (groups={"b"})
public void setup2() {
    //do something else
}

@Test (groups={"a"})
public void Test1() {
    //do something
}

@Test (groups={"b"})
public void Test2() {
    //do something
}

@Test (groups={"a"})
public void Test3() {
    //do something
}

@Test (groups={"b"})
public void Test4() {
    //do something
}

while the xml file would be something like:

<run>
    <include name="a"/>
    <include name="b"/>
</run>

Is it possible to have only setup1 run before Test1, Test3 while only setup2 runs before Test2, Test4?

Это было полезно?

Решение

What you need to use is @BeforeGroups rather than @BeforeMethod. BeforeMethod ensures that setup1 and setup2 both run before each method. BeforeGroups would ensure that it would run only before specific group starts executing.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top