Struktur för funktionstester

Anpassade funktionstester måste paketeras som en separat JAR-fil som skapas av samma Maven-bygge som de artefakter som ska distribueras till AEM. I allmänhet är detta bygge en separat Maven-modul. Den resulterande JAR-filen måste innehålla alla nödvändiga beroenden och skulle vanligtvis skapas med maven-assembly-plugin med hjälp av jar-with-dependencies-beskrivningen.

Dessutom måste JAR ha Cloud-Manager-TestType-manifesthuvudet inställt på integration-test.

Följande är ett exempel på konfiguration för 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>

I den här JAR-filen måste klassnamnen för de faktiska test som ska köras sluta med IT.

En klass med namnet com.myco.tests.aem.it.ExampleIT skulle till exempel köras, men inte en klass med namnet com.myco.tests.aem.it.ExampleTest.

Om du vill utesluta testkod från disponeringskontrollen för kodskanningen måste testkoden dessutom finnas under ett paket med namnet it (disponeringsfiltret är **/it/**/*.java).

Testklasserna ska vara normala JUnit-tester. Testinfrastrukturen är utformad och konfigurerad för att vara kompatibel med konventionerna som används av testbiblioteket aem-testing-clients. Utvecklare uppmuntras att använda det här biblioteket och följa sina bästa rutiner.

Mer information finns i aem-testing-clients GitHub-repo.

TIPS
Titta på den här videon om hur du kan använda anpassade funktionstester för att förbättra ditt förtroende för CI/CD-pipelines.