Grundsätzlich unterscheidet man ja zwischen Unit-Tests und Integrations-Tests. Unit-Test testen das Verhalten einzelner Klassen, während Integrations-Tests das Zusammenspiel mehrerer Klassen testen. Üblicherweise (bzw. richtigerweise) sind Unit-Tests schnell und werden bei jedem Build durchgeführt und Integrations-Tests laufen länger und werden nur zu "speziellen" Gelegenheiten (also beispielsweise in nightly builds) durchlaufen. In Maven gibt es Support für diesen Unterschied unter Verwendung des failsafe-Plugins:
<dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.8.1</version> <scope>test</scope> </dependency>
Zur Unterscheidung zwischen den beiden Test-Arten wird der Klassenname herangezogen:
UnitTest-Klassen enden in *Test
und Integrationstests in *IT
.
Bei einem Clean and Build in NetBeans (entspricht mvn install
) werden alle UnitTests durchgeführt.
Durch mvn failsafe:integration-tests
(bzw. einen entsprechenden Menupunkt, der sich in NetBeans einfach erzeugen lässt) werden die Integrationstests durchgeführt.