Optimize run tests

This commit is contained in:
Simon Ogorodnik
2017-09-06 01:23:18 +03:00
committed by Ilya Chernikov
parent 3aabeca191
commit 34ac3a818a
+27 -3
View File
@@ -1,10 +1,34 @@
@file:Suppress("unused") // usages in build scripts are not tracked properly
import org.gradle.api.*
import org.gradle.api.internal.tasks.testing.filter.DefaultTestFilter
import org.gradle.kotlin.dsl.*
import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.extra
fun Project.projectTest(body: Test.() -> Unit = {}): Test = getOrCreateTask("test") {
fun Project.projectTest(body: Test.() -> Unit = {}): Test = (tasks.findByName("test") as Test).apply {
doFirst {
val patterns = filter.includePatterns + ((filter as? DefaultTestFilter)?.commandLineIncludePatterns ?: emptySet())
if (!patterns.isEmpty()) {
patterns.forEach { pattern ->
val maybeMethodName = pattern.substringAfterLast('.')
val className = if (maybeMethodName.isNotEmpty() && maybeMethodName[0].isLowerCase())
pattern.substringBeforeLast('.')
else
pattern
val matchPattern = className.replace('.', '/') + ".class"
include {
if (it.isDirectory) {
matchPattern.startsWith(it.path)
} else {
it.path.endsWith(matchPattern)
}
}
}
}
}
jvmArgs("-ea", "-XX:+HeapDumpOnOutOfMemoryError", "-Xmx1200m", "-XX:+UseCodeCacheFlushing", "-XX:ReservedCodeCacheSize=128m", "-Djna.nosys=true")
maxHeapSize = "1200m"
systemProperty("idea.is.unit.test", "true")
@@ -15,5 +39,5 @@ fun Project.projectTest(body: Test.() -> Unit = {}): Test = getOrCreateTask("tes
body()
}
inline fun<reified T: Task> Project.getOrCreateTask(taskName: String, body: T.() -> Unit): T =
(tasks.findByName(taskName)?.let { it as T } ?: task<T>(taskName)).apply{ body() }
inline fun <reified T : Task> Project.getOrCreateTask(taskName: String, body: T.() -> Unit): T =
(tasks.findByName(taskName)?.let { it as T } ?: task<T>(taskName)).apply { body() }