Maven'de önce hızlı testleri çalıştırmak ve erkenden fail alarak test sürecini hızlandırmak için testlerinizi gruplara ayırabilir ve bu grupları farklı Maven profilleri altında çalıştırabilirsiniz. Genellikle, hızlı testler unit
olarak, daha uzun süren testler ise integration
olarak etiketlenir. Bu şekilde, önce hızlı testleri çalıştırabilir ve bu testlerden herhangi biri başarısız olursa süreci durdurabilirsiniz.
İşte Maven yapılandırmasını bu amaca yönelik olarak nasıl ayarlayabileceğinizin bir örneği:
Adım 1: Testleri Gruplara Ayırma
Testlerinizi gruplara ayırmak için JUnit veya TestNG kullanabilirsiniz. Örneğin, JUnit 4 kullanıyorsanız, testlerinizi şu şekilde gruplandırabilirsiniz:
Hızlı Test (Unit Test)
import org.junit.experimental.categories.Category;
import org.junit.Test;
@Category(UnitTest.class)
public class MyUnitTest {
@Test
public void testSomethingQuick() {
// Hızlı test kodu
}
}
Yavaş Test (Integration Test)
import org.junit.experimental.categories.Category;
import org.junit.Test;
@Category(IntegrationTest.class)
public class MyIntegrationTest {
@Test
public void testSomethingSlow() {
// Yavaş test kodu
}
}
Adım 2: Maven Profilleri Oluşturma
pom.xml
dosyanızda profilleri tanımlayarak bu test gruplarını çalıştırabilirsiniz.
<project>
...
<profiles>
<!-- Hızlı testler için profil -->
<profile>
<id>fast-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<includes>
<include>**/*Test.class</include>
</includes>
<excludedGroups>IntegrationTest</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Yavaş testler için profil -->
<profile>
<id>slow-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M5</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<groups>IntegrationTest</groups>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Adım 3: Testleri Çalıştırma
Önce hızlı testleri çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
mvn clean test -Pfast-tests
Eğer hızlı testler geçerse, yavaş testleri çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
mvn verify -Pslow-tests
Bu şekilde, önce hızlı testleri çalıştırarak erken bir hata tespit ederseniz tüm süreci durdurabilirsiniz, bu da test sürecinizi hızlandıracaktır.