Я решил это следующим образом:
Методы в базовом классе находятся в «базовой» группе, но необходимо проверить, был ли тест инициализирован.
public abstract DaoTestBase {
private boolean initialized = false;
@Test(groups = "base")
public void testSimple() {
if (!initialized) { return; }
// dummy assertion
assertTrue(true, "Hello");
}
}
Тестинициализируется в дочернем элементе в аннотированном методе BeforeClass.
@BeforeClass
protected void initialize() {
super.initialized = true;
}
Если вы аннотируете родительский класс вместо методов, вы должны передать значение атрибута attribute_Groups = false и группу, поскольку она наследует также группу базового класса и не будет работать.1010 * Теперь вы должны запустить TestNG, чтобы проверить группы базовые, быстрые или базовые, медленные.Оба теста будут выполнены, но тот, который не инициализирован, ничего не сделает.
Это уродливо, и я бы не рекомендовал его (выглядит лучше переопределить методы в child и вызвать соответствующий супер метод), нов моем случае мне нужны приоритеты в моих методах тестирования, и я хочу избежать этого повторения в каждом дочернем классе.