Skip to content

Commit f4eacb0

Browse files
authored
test: start a new fixture server when a test class is rerun (#1985)
1 parent 9e7478d commit f4eacb0

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

‎playwright/src/test/java/com/microsoft/playwright/junit/ServerLifecycle.java‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import org.junit.jupiter.api.extension.*;
2121

2222
import java.io.IOException;
23-
import java.util.HashMap;
2423
import java.util.Map;
24+
import java.util.concurrent.ConcurrentHashMap;
2525

2626
import static com.microsoft.playwright.Utils.nextFreePort;
2727

@@ -31,7 +31,8 @@ public class ServerLifecycle implements BeforeAllCallback, AfterAllCallback, Par
3131
public static Map<Class<?>, Server> serverMap;
3232

3333
static {
34-
serverMap = new HashMap<>();
34+
// Test classes run concurrently.
35+
serverMap = new ConcurrentHashMap<>();
3536
}
3637

3738
@Override
@@ -41,7 +42,8 @@ public void beforeAll(ExtensionContext extensionContext) throws Exception {
4142

4243
@Override
4344
public void afterAll(ExtensionContext extensionContext) {
44-
Server server = serverMap.get(extensionContext.getRequiredTestClass());
45+
// Remove the stopped server so that a rerun of the class (e.g. surefire's rerunFailingTestsCount) starts a new one.
46+
Server server = serverMap.remove(extensionContext.getRequiredTestClass());
4547
if (server != null) {
4648
server.stop();
4749
}

0 commit comments

Comments
 (0)