Skip to content

Commit 5c362c6

Browse files
author
Marcel Schnelle
authored
Add initial Gradle 4.6 Support (#63)
* Update wrapper to Gradle 4.6 * Expose "jvmArgs", "systemProperties" and "environment" facade methods directly on the common Unit Test interface. * Remove most unused stuff from JUnit5UnitTestRunAll class. * Add two new methods to the common interface, to determine Run All task at runtime ("isRunAllTask()") and access to the remaining JavaForkOptions available only to the actual debug/release test tasks ("javaForkOptions()", returning Optional) * Add a remark about minimum req. Gradle version to the README
1 parent 28ffb68 commit 5c362c6

File tree

6 files changed

+89
-95
lines changed

6 files changed

+89
-95
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,17 @@ dependencies {
152152
}
153153
```
154154

155+
## Gradle Compatibility
156+
157+
The plugin's minimum required version of Gradle has increased over time to maximize its leverage with new APIs and performance.
158+
The chart describes the evolution of this requirement. If you can't use the latest version of this plugin due to your
159+
project's Gradle version, please refer to the following table to find the corresponding plugin that works for you.
160+
161+
|Plugin Version|Minimum Gradle Version|
162+
|---|---|
163+
|1.0.30|2.5|
164+
|1.0.31|4.3|
165+
155166
## Licenses
156167

157168
#### android-junit5-embedded-runtime:

android-junit5-tests/src/test/kotlin/de/mannodermaus/gradle/plugins/junit5/PluginSpec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ class PluginSpec : Spek({
350350
unitTests.all {
351351
dependsOn(anotherTaskDep)
352352

353-
if (name == "junitPlatformTest") {
353+
if (isRunAllTask) {
354354
dependsOn(defaultTaskDep)
355355
}
356356
}
Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package de.mannodermaus.gradle.plugins.junit5
22

33
import org.gradle.api.Task
4+
import org.gradle.api.tasks.Input
5+
import org.gradle.api.tasks.Optional
46
import org.gradle.process.JavaForkOptions
57
import org.gradle.process.ProcessForkOptions
68

@@ -9,4 +11,56 @@ import org.gradle.process.ProcessForkOptions
911
* to be referenced from Groovy indirectly.
1012
*/
1113

12-
interface JUnit5UnitTest extends Task, JavaForkOptions, ProcessForkOptions {}
14+
interface JUnit5UnitTest extends Task {
15+
16+
/**
17+
* Whether or not this is the "Run All" JUnit 5 task. It doesn't over the entire JavaForkOptions API,
18+
* and instead will only be a facade.
19+
* @return True if "Run All" task, false if individual test task
20+
*/
21+
boolean isRunAllTask()
22+
23+
/**
24+
* Access the underlying JavaForkOptions, or return an empty Optional if no such options are
25+
* available to this task (e.g., for the "Run All" task.
26+
* @return An Optional of the task's JavaForkOptions, if any
27+
*/
28+
java.util.Optional<JavaForkOptions> javaForkOptions()
29+
30+
/*
31+
* Subset of JavaForkOptions API, shared between Unit Tests and "Run All" task,
32+
* so they can be configured together using unitTests.all {}.
33+
*
34+
* If a user needs to find out whether or not the "Run All" task is being processed or not,
35+
* use the "isRunAllTask()" API.
36+
*/
37+
38+
@Optional
39+
@Input
40+
List<String> getJvmArgs()
41+
42+
void setJvmArgs(List<String> var1)
43+
44+
void setJvmArgs(Iterable<?> var1)
45+
46+
JavaForkOptions jvmArgs(Iterable<?> var1)
47+
48+
JavaForkOptions jvmArgs(Object... var1)
49+
50+
@Input
51+
Map<String, Object> getSystemProperties()
52+
53+
void setSystemProperties(Map<String, ?> var1)
54+
55+
JavaForkOptions systemProperties(Map<String, ?> var1)
56+
57+
JavaForkOptions systemProperty(String var1, Object var2)
58+
59+
Map<String, Object> getEnvironment()
60+
61+
void setEnvironment(Map<String, ?> var1)
62+
63+
ProcessForkOptions environment(Map<String, ?> var1)
64+
65+
ProcessForkOptions environment(String var1, Object var2)
66+
}

android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/tasks/UnitTest.kt

Lines changed: 21 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import org.gradle.api.tasks.Optional
3232
import org.gradle.process.JavaForkOptions
3333
import org.gradle.process.ProcessForkOptions
3434
import org.gradle.process.internal.DefaultJavaForkOptions
35-
import org.gradle.process.internal.DefaultProcessForkOptions
3635
import org.junit.platform.console.ConsoleLauncher
3736
import java.io.File
3837

@@ -69,6 +68,10 @@ open class AndroidJUnit5UnitTest : JavaExec(), JUnit5UnitTest {
6968
@Optional
7069
var assetsCollection: FileCollection? = null
7170

71+
override fun isRunAllTask() = false
72+
73+
override fun javaForkOptions() = java.util.Optional.of<JavaForkOptions>(this)
74+
7275
/**
7376
* Configuration closure for an Android JUnit5 test task.
7477
*/
@@ -272,110 +275,36 @@ open class AndroidJUnit5UnitTest : JavaExec(), JUnit5UnitTest {
272275
* Allows the default task to also be configured by unitTests.all.
273276
*/
274277
open class JUnit5UnitTestRunAll : DefaultTask(), JUnit5UnitTest {
275-
276278
private val emptyJavaForkOptions = DefaultJavaForkOptions(IdentityFileResolver())
277-
private val emptyProcessForkOptions = DefaultProcessForkOptions(IdentityFileResolver())
278-
private val emptyFileCollection = project.files()
279-
280-
override fun setSystemProperties(p0: MutableMap<String, *>?) {
281-
}
282-
283-
override fun getExecutable() = ""
284-
285-
override fun setDefaultCharacterEncoding(p0: String?) {
286-
}
287-
288-
override fun jvmArgs(p0: MutableIterable<*>?) = emptyJavaForkOptions
289-
290-
override fun jvmArgs(vararg p0: Any?) = emptyJavaForkOptions
291-
292-
override fun environment(p0: MutableMap<String, *>?) = emptyProcessForkOptions
293-
294-
override fun environment(p0: String?, p1: Any?) = emptyProcessForkOptions
295-
296-
override fun setMinHeapSize(p0: String?) {
297-
}
298-
299-
override fun systemProperties(p0: MutableMap<String, *>?) = emptyJavaForkOptions
300-
301-
override fun setExecutable(p0: String?) {
302-
}
303-
304-
override fun setExecutable(p0: Any?) {
305-
}
306-
307-
override fun executable(p0: Any?) = emptyProcessForkOptions
308-
309-
override fun setJvmArgs(p0: MutableList<String>?) {
310-
}
311-
312-
override fun setJvmArgs(p0: MutableIterable<*>?) {
313-
}
314279

315-
override fun setAllJvmArgs(p0: MutableList<String>?) {
316-
}
317-
318-
override fun setAllJvmArgs(p0: MutableIterable<*>?) {
319-
}
320-
321-
override fun setDebug(p0: Boolean) {
322-
}
323-
324-
override fun getWorkingDir() = project.file("")
325-
326-
override fun setBootstrapClasspath(p0: FileCollection?) {
327-
}
328-
329-
override fun getDefaultCharacterEncoding() = ""
330-
331-
override fun setMaxHeapSize(p0: String?) {
332-
}
333-
334-
override fun systemProperty(p0: String?, p1: Any?) = emptyJavaForkOptions
280+
override fun isRunAllTask() = true
335281

336-
override fun getBootstrapClasspath() = emptyFileCollection
282+
override fun javaForkOptions() = java.util.Optional.empty<JavaForkOptions>()
337283

338-
override fun workingDir(p0: Any?) = emptyProcessForkOptions
284+
/* JavaForkOptions facade */
339285

340-
override fun setWorkingDir(p0: File?) {
286+
override fun getJvmArgs() = emptyList<String>()
287+
override fun setJvmArgs(var1: MutableList<String>?) {
341288
}
342289

343-
override fun setWorkingDir(p0: Any?) {
290+
override fun setJvmArgs(var1: MutableIterable<*>?) {
344291
}
345292

346-
override fun setEnvironment(p0: MutableMap<String, *>?) {
347-
}
348-
349-
override fun getEnableAssertions() = false
350-
351-
override fun setEnableAssertions(p0: Boolean) {
352-
}
353-
354-
override fun getMaxHeapSize() = ""
355-
356-
override fun copyTo(p0: JavaForkOptions?) = emptyJavaForkOptions
293+
override fun jvmArgs(var1: MutableIterable<*>?): JavaForkOptions = emptyJavaForkOptions
294+
override fun jvmArgs(vararg var1: Any?): JavaForkOptions = emptyJavaForkOptions
357295

358-
override fun copyTo(p0: ProcessForkOptions?) = emptyProcessForkOptions
359-
360-
override fun getJvmArgs(): MutableList<String> {
361-
return mutableListOf()
362-
}
363-
364-
override fun getSystemProperties(): MutableMap<String, Any> {
365-
return mutableMapOf()
296+
override fun getSystemProperties() = mutableMapOf<String, Any>()
297+
override fun setSystemProperties(var1: MutableMap<String, *>?) {
366298
}
367299

368-
override fun getMinHeapSize() = ""
300+
override fun systemProperties(
301+
var1: MutableMap<String, *>?): JavaForkOptions = emptyJavaForkOptions
369302

370-
override fun getEnvironment(): MutableMap<String, Any> {
371-
return mutableMapOf()
303+
override fun systemProperty(var1: String?, var2: Any?): JavaForkOptions = emptyJavaForkOptions
304+
override fun getEnvironment() = mutableMapOf<String, Any>()
305+
override fun setEnvironment(var1: MutableMap<String, *>?) {
372306
}
373307

374-
override fun getAllJvmArgs(): MutableList<String> {
375-
return mutableListOf()
376-
}
377-
378-
override fun getDebug() = false
379-
380-
override fun bootstrapClasspath(vararg p0: Any?) = emptyJavaForkOptions
308+
override fun environment(var1: MutableMap<String, *>?): ProcessForkOptions = emptyJavaForkOptions
309+
override fun environment(var1: String?, var2: Any?): ProcessForkOptions = emptyJavaForkOptions
381310
}

gradle/wrapper/gradle-wrapper.jar

-4 Bytes
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
34
zipStoreBase=GRADLE_USER_HOME
45
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip

0 commit comments

Comments
 (0)