Могу ли я иметь несколько @BeforeMethod, которые будут работать только для групп, к которым они принадлежат?

@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
}

в то время как XML-файл будет выглядеть примерно так:

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

Можно ли запустить только setup1 до Test1, Test3, в то время как только setup2 работает до Test2, Test4?

1 ответ

Решение

Вам нужно использовать @BeforeGroups, а не @BeforeMethod. BeforeMethod гарантирует, что setup1 и setup2 оба выполняются перед каждым методом. BeforeGroups будет гарантировать, что он будет работать только до того, как начнется выполнение определенной группы.

Другие вопросы по тегам