Разные действия после выполнения тестов в зависимости от успешности

Есть пачка тестов, после каждого теста выполняется какой-то код с помощью аннотации testNG @AfterTest
но мне необходимо выполнять разные действия после тестов в зависимости от того сфейлился тест при выполнении или прошел успешно
как такое можно реализовать?

Вариант 1.
Dependency Injection TestNG

    @AfterMethod(alwaysRun = true)
    public void afterTestMethod(ITestResult result) {
        if(result.isSuccess()) {
                // actions
        }
        else { // other action}
    }

Или такую проверку if(result.getStatus() == ITestResult.SUCCESS)

2 лайка

Вам нужны test listeners. Тут есть примеры.

2 лайка

Вариант 2.
IResultListener

public class MyClass implements IResultListener {
    @Override
    public void onConfigurationSuccess(ITestResult itr) {
        
    }

    @Override
    public void onConfigurationFailure(ITestResult itr) {

    }

    @Override
    public void onConfigurationSkip(ITestResult itr) {

    }

    @Override
    public void onTestStart(ITestResult result) {

    }

    @Override
    public void onTestSuccess(ITestResult result) {
        // actions

    }

    @Override
    public void onTestFailure(ITestResult result) {
        // other actions
    }

    @Override
    public void onTestSkipped(ITestResult result) {

    }

    @Override
    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {

    }

    @Override
    public void onStart(ITestContext context) {

    }

    @Override
    public void onFinish(ITestContext context) {

    }
2 лайка