Estrutura de testes funcionais
Os testes funcionais personalizados precisam ser compactados como um arquivo JAR separado produzido pela mesma build do Maven que os artefatos a serem implantados no AEM. Em geral, essa build seria um módulo do Maven separado. O arquivo JAR resultante deve conter todas as dependências necessárias e geralmente é criado usando o maven-assembly-plugin
com o descritor jar-with-dependencies
.
Além disso, o JAR deve ter a o cabeçalho de manifesto Cloud-Manager-TestType
definido como integration-test
.
O código a seguir é um exemplo de configuração de maven-assembly-plugin
.
<build>
<plugins>
<!-- Create self-contained jar with dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifestEntries>
<Cloud-Manager-TestType>integration-test</Cloud-Manager-TestType>
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Neste arquivo JAR, os nomes de classe dos testes reais a serem executados devem terminar em IT
.
Por exemplo, uma classe chamada com.myco.tests.aem.it.ExampleIT
seria executada, mas uma chamada com.myco.tests.aem.it.ExampleTest
não.
Além disso, para excluir o código de teste da verificação de abrangência da verificação de código, o código de teste deve estar abaixo de um pacote chamado it
(o filtro de exclusão de abrangência é **/it/**/*.java
).
As classes de teste precisam ser testes JUnit normais. A infraestrutura de teste é projetada e configurada para ser compatível com as convenções usadas pela biblioteca de testes aem-testing-clients
. Os desenvolvedores são incentivados a usar essa biblioteca e a seguir suas práticas recomendadas.
Consulte aem-testing-clients
repositório do GitHub para obter mais detalhes.