✅ Don’t run some tests in parallel
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 8 Feb 2020 23:53:44 +0000 (00:53 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 9 Feb 2020 00:14:29 +0000 (01:14 +0100)
build.gradle
src/test/kotlin/net/pterodactylus/sone/main/SoneModuleTest.kt
src/test/kotlin/net/pterodactylus/sone/main/SonePluginTest.kt
src/test/kotlin/net/pterodactylus/sone/test/NotParallel.kt [new file with mode: 0644]

index 78c3110..e5eaff7 100644 (file)
@@ -57,8 +57,23 @@ dependencies {
 
 apply from: 'version.gradle'
 
-test {
+task parallelTest(type: Test) {
     maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
+    useJUnit {
+        excludeCategories 'net.pterodactylus.sone.test.NotParallel'
+    }
+}
+
+task notParallelTest(type: Test) {
+    maxParallelForks = 1
+    useJUnit {
+        includeCategories 'net.pterodactylus.sone.test.NotParallel'
+    }
+}
+
+test {
+    exclude '**'
+    dependsOn parallelTest, notParallelTest
 }
 
 task fatJar(type: Jar) {
index 1a71f4b..c628334 100644 (file)
@@ -17,6 +17,7 @@ import net.pterodactylus.util.config.*
 import net.pterodactylus.util.version.Version
 import org.hamcrest.MatcherAssert.*
 import org.hamcrest.Matchers.*
+import org.junit.experimental.categories.*
 import org.mockito.Mockito.*
 import java.io.*
 import java.util.concurrent.*
@@ -25,6 +26,7 @@ import kotlin.test.*
 
 const val versionString = "v80"
 
+@Category(NotParallel::class)
 class SoneModuleTest {
 
        private val currentDir: File = File(".")
index e658fe2..0bb03af 100644 (file)
@@ -15,6 +15,7 @@ import net.pterodactylus.sone.web.*
 import net.pterodactylus.sone.web.notification.*
 import org.hamcrest.MatcherAssert.*
 import org.hamcrest.Matchers.*
+import org.junit.experimental.categories.*
 import org.mockito.Mockito.*
 import java.io.*
 import java.util.concurrent.atomic.*
@@ -24,6 +25,7 @@ import kotlin.test.*
  * Unit test for [SonePlugin].
  */
 @Dirty
+@Category(NotParallel::class)
 class SonePluginTest {
 
        private var sonePlugin = SonePlugin { injector }
diff --git a/src/test/kotlin/net/pterodactylus/sone/test/NotParallel.kt b/src/test/kotlin/net/pterodactylus/sone/test/NotParallel.kt
new file mode 100644 (file)
index 0000000..6e00fbf
--- /dev/null
@@ -0,0 +1,8 @@
+package net.pterodactylus.sone.test
+
+/**
+ * Marker class for a JUnit [org.junit.experimental.categories.Category], to
+ * mark tests that should not be run parallel to other tests.
+ */
+class NotParallel
+