Parallel Test Execution for JUnit 5

This commit is contained in:
Mladen Savic
2021-10-01 12:42:21 +02:00
parent b75fba6f7f
commit 8854bcc5b0
7 changed files with 136 additions and 0 deletions
@@ -0,0 +1,21 @@
package com.baeldung.junit5;
import org.junit.jupiter.api.Test;
public class A_UnitTest {
@Test
public void first() throws Exception{
System.out.println("Test A first() start => " + Thread.currentThread().getName());
Thread.sleep(500);
System.out.println("Test A first() end => " + Thread.currentThread().getName());
}
@Test
public void second() throws Exception{
System.out.println("Test A second() start => " + Thread.currentThread().getName());
Thread.sleep(500);
System.out.println("Test A second() end => " + Thread.currentThread().getName());
}
}
@@ -0,0 +1,23 @@
package com.baeldung.junit5;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
public class B_UnitTest {
@Test
public void first() throws Exception{
System.out.println("Test B first() start => " + Thread.currentThread().getName());
Thread.sleep(500);
System.out.println("Test B first() end => " + Thread.currentThread().getName());
}
@Test
public void second() throws Exception{
System.out.println("Test B second() start => " + Thread.currentThread().getName());
Thread.sleep(500);
System.out.println("Test B second() end => " + Thread.currentThread().getName());
}
}
@@ -0,0 +1,45 @@
package com.baeldung.junit5;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.ResourceLock;
import java.util.ArrayList;
import java.util.List;
public class C_UnitTest {
private List<String> resources;
@BeforeEach
void before() {
resources = new ArrayList<>();
resources.add("test");
}
@AfterEach
void after() {
resources.clear();
}
@Test
@ResourceLock(value = "resources")
public void first() throws Exception {
System.out.println("Test C first() start => " + Thread.currentThread().getName());
resources.add("first");
System.out.println(resources);
Thread.sleep(500);
System.out.println("Test C first() end => " + Thread.currentThread().getName());
}
@Test
@ResourceLock(value = "resources")
public void second() throws Exception {
System.out.println("Test C second() start => " + Thread.currentThread().getName());
resources.add("second");
System.out.println(resources);
Thread.sleep(500);
System.out.println("Test C second() end => " + Thread.currentThread().getName());
}
}
@@ -0,0 +1,4 @@
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.config.strategy=dynamic
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = concurrent