Structuur van functionele tests
Aangepaste functionele tests moeten worden verpakt als een afzonderlijk JAR-bestand dat wordt geproduceerd door dezelfde Maven-build als de artefacten die moeten worden ingezet voor AEM. Over het algemeen zou deze build een aparte module Maven zijn. Het resulterende JAR-bestand moet alle vereiste afhankelijkheden bevatten en wordt doorgaans gemaakt met de maven-assembly-plugin
met behulp van de jar-with-dependencies
-descriptor.
Daarnaast moet voor de JAR de header Cloud-Manager-TestType
manifest zijn ingesteld op integration-test
.
Hier volgt een voorbeeldconfiguratie voor 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>
In dit JAR-bestand moeten de klassenamen van de tests die daadwerkelijk moeten worden uitgevoerd, eindigen in IT
.
Een klasse met de naam com.myco.tests.aem.it.ExampleIT
wordt bijvoorbeeld uitgevoerd, maar een klasse met de naam com.myco.tests.aem.it.ExampleTest
niet.
Bovendien moet de testcode zich onder een pakket met de naam it
bevinden om testcode uit te sluiten van de dekkingscontrole van de codescanfunctie (het filter voor dekkingsuitsluiting is **/it/**/*.java
).
De testklassen moeten normale JUnit-tests zijn. De testinfrastructuur is zodanig ontworpen en geconfigureerd dat deze compatibel is met de conventies die worden gebruikt in de testbibliotheek van aem-testing-clients
. Ontwikkelaars worden aangeraden deze bibliotheek te gebruiken en de beste praktijken ervan te volgen.
Zie aem-testing-clients
reactie GitHubvoor meer details.