А по хорошему не должно быть такой ситуации, что для теста нет данных. Если их нет, их надо создавать перед запуском теста. Иначе у тебя тестовые запуски получаются как игра в русскую рулетку. Тесты должны быть 100% повторяемыми. Это одно из основных правил написания правильных тестов (а автотестов особенно)
у меня может быть такое состояние системы но крайне редко. Я вот и хотел обработать такую “ошибку”. Хотя по сути да можно пересмотреть этот вариант. Хотелось просто решить такую задачу на таком конкретном примере =)
Стандартными средствами в процессе выполнения теста нельзя его пометить skipped (если не прав - поправьте). Если важно помечать тест именно как skipped, и если Вы используете TestNG, для этого тест нужно разбить на более мелкие тесты и установить между ними зависимости.
Пример:
@Test
public void test1()
{
// some actions
}
@Test(dependsOnMethods="test1")
public void test2()
{
// some actions
}
В данном случае тест test2() будет выполнен в том случае, если тест, от которого он зависит (test1()), будет успешно выполнен. Иначе - тест test2() будет помечен как skipped.
Можно Listenter-ы в TestNG свои повесить. Но тут надо очень четко понимать для чего это делается. Как правильно написал выше @vmaximv, в данном случае skipped будет скорее вреден, чем полезен
Делать if / else для того, чтобы уйти в logout без единого assert’a -> тест который, ничего не тестирует. Писать тесты, основанные на случайных кондишенах, - моветон, ибо expected result будет совсем unexpected.
Ваш вариант: приведение системы в пригодное для тестирования состояние аля precondition, либо assertTrue(getElementsCount() > 0); -> Other steps.