TestNG - Suite Test
UMA test suiteé uma coleção de casos de teste destinados a testar um comportamento ou um conjunto de comportamentos de um programa de software. No TestNG, não podemos definir um conjunto no teste de código-fonte, mas é representado por um arquivo XML, já que o conjunto é o recurso de execução. Também permite uma configuração flexível dos testes a serem executados. Um conjunto pode conter um ou mais testes e é definido pela tag <suite>.
<suite> é a tag raiz do seu testng.xml. Ele descreve um conjunto de testes, que por sua vez é composto de várias seções de <test>.
A tabela a seguir lista todos os atributos legais que o <suite> aceita.
Sr. Não. | Atributo e descrição |
---|---|
1 | name O nome desta suíte. É ummandatory atributo. |
2 | verbose O nível ou detalhamento desta execução. |
3 | parallel Se TestNG deve executar threads diferentes para executar este conjunto. |
4 | thread-count O número de threads a serem usados, se o modo paralelo estiver ativado (ignorado de outra forma). |
5 | annotations O tipo de anotação que você está usando em seus testes. |
6 | time-out O tempo limite padrão que será usado em todos os métodos de teste encontrados neste teste. |
Neste capítulo, mostraremos um exemplo com duas classes de teste, Test1 e Test2, para serem executadas juntas usando Test Suite.
Criar uma aula
Crie uma classe java a ser testada, digamos, MessageUtil.java dentro C:\>JUNIT_WORKSPACE.
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
// Constructor
// @param message to be printed
public MessageUtil(String message) {
this.message = message;
}
// prints the message
public String printMessage() {
System.out.println(message);
return message;
}
// add "Hi!" to the message
public String salutationMessage() {
message = "Hi!" + message;
System.out.println(message);
return message;
}
}
Criar classes de caso de teste
Crie um arquivo de classe java chamado Test1.java dentro C:\>TestNG_WORKSPACE.
import org.testng.Assert;
import org.testng.annotations.Test;
public class Test1 {
String message = "Manisha";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
Assert.assertEquals(message, messageUtil.printMessage());
}
}
Crie um arquivo de classe java chamado Test2.java dentro C:\>TestNG_WORKSPACE.
import org.testng.Assert;
import org.testng.annotations.Test;
public class Test2 {
String message = "Manisha";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Manisha";
Assert.assertEquals(message,messageUtil.salutationMessage());
}
}
Agora, vamos escrever o testng.xml em C:\>TestNG_WORKSPACE, que conteria a tag <suite> da seguinte maneira -
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "exampletest1">
<classes>
<class name = "Test1" />
</classes>
</test>
<test name = "exampletest2">
<classes>
<class name = "Test2" />
</classes>
</test>
</suite>
Suite1 inclui exampletest1 e exampletest2.
Compile todas as classes java usando javac.
C:\TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java
Agora, execute o testng.xml, que executará o caso de teste definido na classe de caso de teste fornecida.
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
Verifique a saída.
Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha
===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================
Você também pode verificar a pasta de saída de teste . Na pasta Suite1 , você pode ver dois arquivos html criados, exampletest1.html e exampletest2.html, que teriam a seguinte aparência -