Qual é a melhor prática para pular um teste em TestNG?

Rodrigo Vaamonde:

Comecei a usar TestNG apenas alguns meses atrás. Eu quero pular uma @Test que tem um bug associado à espera de ser fixo, sem ignorá-lo (isto é, sem marcá-lo como habilitado = false) como eu ainda quero que ele apareça no relatório como um ignorado.

Eu também tenho dependências para esse teste, então se eu simplesmente ignorar o @Test, então eu vou ter que mudar todas as dependências. Eu prefiro pular o teste, de modo que os testes dependendo seria apenas ser ignorado também.

Atualmente estou tentando fazer:

@Test(enabled = true, groups = { "GroupA" }, dependsOnMethods = { "MethodB" } )
public void testA() {

   throw new SkipException("Test blocked due to Bug-1234");

   doTest(); // Compile error: Unreachable code.
}

Uma solução rápida seria a comentar esse código, mas isso geraria um monte de avisos, e não ficaria bem.

Eu também poderia adicionar um if (true) antes do Ignorar, como eu vi em outras soluções, mas que gera um aviso de código morto que eu preferiria evitar.

Em vez de "o que eu posso fazer?", A minha pergunta seria "o que você faria?". Existe uma prática comum para lidar com isso com TestNG?

(Este é o meu primeiro post, por favor me perdoe se eu não encontrar uma resposta já existente para este).

Rodrigo Vaamonde:

Depois de tentar coisas diferentes com os ouvintes e algumas outras maneiras, cheguei à conclusão de que a melhor coisa que eu poderia fazer, tanto quanto eu sei, foi apenas para adicionar um método estático que seria definido em uma super classe ou um pacote de utilidade:

@Test(  enabled = true,
    description = "Validates that it is possible to create a new booking.")
public void validateCreateNewBooking() {
    skipTest("BUG-1234");

    doTest();
}


Onde skipTest:

public static void skipTest(String reason) {
        throw new SkipException("Test voluntarily skipped. Reason: " + reason);
    }


Assim resultado:

SKIPPED: validateCreateNewBooking
         Validates that it is possible to create a new booking.
org.testng.SkipException: Test voluntarily skipped. Reason: BUG-1234
    at com.openjaw.testregression.tretailapi.test.TestConfig.skipTest(TestConfig.java:28)
    at com.openjaw.testregression.tretailapi.test.booking.CreateBookingTest.validateCreateNewBooking(CreateBookingTest.java:16)

mensagem ignorado no relatório

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=330784&siteId=1
Recomendado
Clasificación