Пропущенные тесты не отображаются в ExtentReports

Пропущенный тест не отображается в отчетах по экстентам.

Я использую dependsonmethods, и согласно отчету о степени метода должен отображаться тестовый пример с пропуском журнала. Но он печатает журнал пропусков в предыдущем тестовом примере.

   @Test(priority = 12)
void UndoRedo() {
    undoRedoCase.UndoRedoTest();
}

@Test(priority = 13)
void LockUnlock() {
    lockUnlockElement.LockUnlockCase();
}

@Test(priority = 14)
void FrameLayer() {
    layerFrame.FrameLayerCase();
}

@Test(priority = 15)
void AddImage() {
    addimage.AddImageCase();
}

@Test(priority = 16,dependsOnMethods = {"AddImage"})
void EraseImage() {
    imageErase.ImageEraseCase();
}

Пожалуйста, проверьте изображение изображения выполнения теста.

Изображение тестового примера консоли 5, неудачный 1, пропущенный 1  введите описание изображения здесь

Результат отчета по экстенту. введите описание изображения здесь

Пропущенный журнал тестового набора, напечатанный в журналах предыдущих тестовых случаев  введите описание изображения здесь

Пропущенный тестовый случай не печатается в отчете о экстенте.


person T.Che    schedule 04.12.2019    source источник


Ответы (2)


У меня похожий вопрос, но я подхожу к нему иначе. У меня есть метод after, который отлично работает, когда я явно говорю ему test.pass () или test.fail (), но я изо всех сил пытаюсь заставить репортер экстента уловить и задокументировать пропущенный тест. TestNG сообщает, что полные тесты пропускаются, хочу увидеть это в полной мере.

    @AfterMethod
public void getResult(ITestResult result) {
    if(result.getStatus() == ITestResult.FAILURE) {
        test.log(Status.FAIL, MarkupHelper.createLabel(result.getName()+" FAILED ", ExtentColor.RED));
        test.fail(result.getThrowable());
    }
    else if(result.getStatus() == ITestResult.SUCCESS) {
        test.log(Status.PASS, MarkupHelper.createLabel(result.getName()+" PASSED ", ExtentColor.GREEN));
    }
    else if(result.getStatus() == ITestResult.SKIP) {
        test.log(Status.PASS, MarkupHelper.createLabel(result.getName()+" SKIPPED ", ExtentColor.RED));
    }
    else {
        test.log(Status.SKIP, MarkupHelper.createLabel(result.getName()+" SKIPPED ", ExtentColor.ORANGE));
        test.skip(result.getThrowable());
    }
}

Пример однократной проверки:

try {
    softAssert.assertEquals(plain1, plain2);
    test.pass("PASS: Field is edited");
} catch (AssertionError e) {
    test.fail("FAIL: Field is NOT edited");
    test.fail(e);
    throw (e);
}
person QAPal    schedule 24.12.2019
comment
Спасибо, что поделились, но я уже пробовал этот код и не работает в моем случае. - person T.Che; 24.12.2019

Я также столкнулся с этой проблемой, и приведенный ниже код работал у меня. Определите testListener таким образом, а затем вызовите этот класс testListener в своем базовом классе с помощью @listeners (TestListeners.class) перед запуском базового класса.

Примечание: я использовал Spark Extentreport

public class TestListeners implements ITestListener {

@override public void onTestSkipped(ITestResult result) {

Baseclass.extenttest = Baseclass.extent.createTest(result.getMethod().getDescription()).assignCategory("SkipedTest");
Baseclass.extenttest .log(Status.SKIP, result.getThrowable());
Baseclass.extenttest .log(Status.SKIP, result.getMethod().getDescription());
Baseclass.extenttest .log(Status.SKIP,  MarkupHelper.createLabel(result.getName(), ExtentColor.YELLOW));
Baseclass.extent.flush();
} }

В вашем тестовом классе определите @Test, как показано ниже

@Test(description = "Test Case name", dependsOnMethods = { "Name of method on which it depends" })
person chirag25    schedule 14.05.2021