Я пытаюсь использовать группу для запуска подмножества тестов, относящихся к тому, что я работаю над вызываемым "текущим". Проблема в том, что если я использую суперкласс для выполнения некоторой настройки в методе @BeforeMethod, метод запускается, когда я запускаю все тесты, но не тогда, когда я запускаю только указанную группу "current".
Поэтому, когда я запускаю все тесты, emptyTest терпит неудачу, потому что вызывается @BeforeMethod, когда просто выполняется текущая группа, метод не вызывается. Примечание. Если я добавлю @Test (groups = { "current" }) в подкласс, то он запустится - однако он запускает все подклассы, не помеченные как "текущие", а также поражает цель "текущей" группы.
Если есть лучший способ выполнить это поведение, я открыт для всех решений.
Спасибо, Ransom
суперкласса:
public class TestNGSuperclass {
@BeforeMethod
public void failingToShowThatItIsNotRun() {
Assert.fail();
}
}
Подкласс:
@Test(groups = {"current"})
public class TestNGCurrentGroup extends TestNGSuperclass {
public void emptyTest() {}
}
Конфигурация TestNG:
<test name="current">
<groups>
<run>
<include name="current"/>
</run>
</groups>
<packages>
<package name="uiowa.wf.test.*"/>
</packages>
</test>
<test name="all-tests">
<packages>
<package name="uiowa.wf.test.*"/>
</packages>
</test>