У меня есть специальное решение для создания отчетов и утверждений, которое работает именно так, как я этого хочу, однако gradle не помечает тесты как неудачные.Самое простое решение для меня - просто пометить тест как неудачный в testNG всякий раз, когда мои утверждения разрешены, поэтому он пометит его как неудачный в gradle.Я установил статус теста, используя это:
Reporter.getCurrentTestResult().setStatus(ITestResult.FAILURE);
Но он возвращается после завершения метода @Test
@Test
public void assertionsFail(){
//Custom assertion fails
generalAssertion(new AssertionPayload(false));
//Let testNG know that test failed
Reporter.getCurrentTestResult().setStatus(ITestResult.FAILURE);
//Marked as failed here, Reporter.getCurrentTestResult() returns 2
}
@AfterMethod(alwaysRun = true)
public void afterTest(ITestResult testResult) {
//Why is it marked as passed here? Reporter.getCurrentTestResult() returns 1
}
В конце метода теста я подтвердил, что статуснастроен на провал.Однако, когда он достигает моего @AfterTest, по какой-то причине он больше не устанавливается на сбой, а устанавливается на проход.Есть ли что-то простое, что мне здесь не хватает?Есть ли простой способ пометить тест как проваленный?Я пытался создать softAssert, который не удался, но это действительно неопрятно и не идеально.