JupiterApi, как получить результат выполненного теста?
Всем привет! Появилась проблема с получением результата теста
import static org.junit.jupiter.api.Assertions.fail;
import org.junit.Rule;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.condition.EnabledIf;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class DisablingTest {
boolean isTestPassed;
@Rule
public TestWatcher watchman= new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
isTestPassed = false;
}
@Override
protected void succeeded(Description description) {
isTestPassed = true;
}
};
public boolean isTestPassed() {
return isTestPassed;
}
@Test
@Order(1)
@EnabledIf(value = "isTestPassed")
void firstTest() {
System.out.println("Тест 1 запустился");
fail();
}
@Test
@Order(2)
@EnabledIf(value = "isTestPassed")
void secondTest() {
System.out.println("Тест 2 запустился");
}
@Test
@Order(3)
@EnabledIf(value = "isTestPassed")
void thirdTest() {
System.out.println("Тест 3 запустился");
}
}
Идея заключается в том, чтобы после упавшего теста, все остальные тесты в классе были skipped. Но я столкнулся с проблемой, заключается она в том, что чтобы реализовать @Rule я должен использовать org.junit.Test , но в моем проект тесты реализованы через org.junit.jupiter.api.Test, может кто-нибудь знает, как получить результат выполненного теста в Jupiter API?
Ответы (1 шт):
Автор решения: fursaar
→ Ссылка
Спасибо!
Подтянул в проект https://junit-pioneer.org/docs/disable-if-test-fails/ , теперь всё работает как мне нужно)