JUnit 5'de birim testlerini ve entegrasyon testlerini paralel çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
Maven veya Gradle Yapılandırması
JUnit 5'de paralel test çalıştırma özelliklerini kullanabilmek için Maven veya Gradle yapılandırmanızı güncellemeniz gerekebilir.
Maven
Maven kullanıyorsanız, maven-surefire-plugin
ve maven-failsafe-plugin
eklentilerini yapılandırmanız gerekiyor.
pom.xml:
xml<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<parallel>methods</parallel>
<useUnlimitedThreads>true</useUnlimitedThreads>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<parallel>methods</parallel>
<useUnlimitedThreads>true</useUnlimitedThreads>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
Gradle
Gradle kullanıyorsanız, test
ve integrationTest
görevlerini paralel çalışacak şekilde yapılandırabilirsiniz.
build.gradle:
groovyplugins { id 'java' } repositories { mavenCentral() } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' } test { useJUnitPlatform() maxParallelForks = Runtime.runtime.availableProcessors() } task integrationTest(type: Test) { useJUnitPlatform() shouldRunAfter test maxParallelForks = Runtime.runtime.availableProcessors() testClassesDirs = sourceSets.integrationTest.output.classesDirs classpath = sourceSets.integrationTest.runtimeClasspath } sourceSets { integrationTest { compileClasspath += sourceSets.main.output + sourceSets.test.output runtimeClasspath += sourceSets.main.output + sourceSets.test.output } } configurations { integrationTestImplementation.extendsFrom testImplementation integrationTestRuntimeOnly.extendsFrom testRuntimeOnly }
JUnit 5 Konfigürasyonu
JUnit Platform Properties
JUnit 5'de paralel çalıştırma ayarlarını junit-platform.properties
dosyasında yapabilirsiniz.
src/test/resources/junit-platform.properties:
propertiesjunit.jupiter.execution.parallel.enabled = true junit.jupiter.execution.parallel.mode.default = concurrent junit.jupiter.execution.parallel.config.strategy = dynamic
Bu ayarlar, JUnit 5 testlerini paralel olarak çalıştırmak için gerekli konfigürasyonları sağlar.
Testlerin Ayrılması
Birim testleri ve entegrasyon testlerini ayırmak için genellikle farklı paketler veya adlandırma kuralları kullanılır.
- Birim testleri için
src/test/java
dizinini kullanabilirsiniz. - Entegrasyon testleri için
src/integrationTest/java
gibi ayrı bir dizin oluşturabilirsiniz.
Bu yapılandırmalarla birlikte JUnit 5 testlerini paralel olarak çalıştırabilir ve test süresini kısaltabilirsiniz.