From 4dd911478ee1ad099dff5b2adac2a3cf29b8eeda Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Mon, 5 Oct 2020 22:30:32 +0200 Subject: [PATCH] Allow `@BeforeMethod` when whole test suite single-threaded Allow `@BeforeMethod` and `@AfterMethod` on non-single-threaded test classes when the whole suite is marked as such. --- .../ReportMultiThreadedBeforeOrAfterMethod.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/presto-testng-services/src/main/java/io/prestosql/testng/services/ReportMultiThreadedBeforeOrAfterMethod.java b/presto-testng-services/src/main/java/io/prestosql/testng/services/ReportMultiThreadedBeforeOrAfterMethod.java index eed28b9bd01e..3e69b0553936 100644 --- a/presto-testng-services/src/main/java/io/prestosql/testng/services/ReportMultiThreadedBeforeOrAfterMethod.java +++ b/presto-testng-services/src/main/java/io/prestosql/testng/services/ReportMultiThreadedBeforeOrAfterMethod.java @@ -19,6 +19,8 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import org.testng.xml.XmlSuite.ParallelMode; +import org.testng.xml.XmlTest; import java.lang.reflect.Method; @@ -33,6 +35,10 @@ public class ReportMultiThreadedBeforeOrAfterMethod public void onBeforeClass(ITestClass testClass) { try { + if (!isParallel(testClass.getXmlTest())) { + return; + } + reportMultiThreadedBeforeOrAfterMethod(testClass.getRealClass()); } catch (RuntimeException | Error e) { @@ -44,6 +50,16 @@ public void onBeforeClass(ITestClass testClass) } } + private boolean isParallel(XmlTest xmlTest) + { + if (xmlTest.getThreadCount() == 1) { + return false; + } + + ParallelMode parallel = xmlTest.getParallel(); + return parallel.isParallel(); + } + @VisibleForTesting static void reportMultiThreadedBeforeOrAfterMethod(Class testClass) {