Skip to content
This repository was archived by the owner on Jan 25, 2021. It is now read-only.

Commit f5a1679

Browse files
committed
using built-in GradleRunner instead of custom gradletest plugin
1 parent 459a4e1 commit f5a1679

File tree

2 files changed

+150
-48
lines changed

2 files changed

+150
-48
lines changed

build.gradle

Lines changed: 21 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
plugins {
33
id "nu.studer.plugindev" version "1.0.4"
44
id "com.gradle.plugin-publish" version "0.9.4"
5-
id "org.ysb33r.gradletest" version "0.5.5"
65
}
76

8-
apply plugin: 'groovy'
7+
apply plugin: "groovy"
8+
apply plugin: "java-gradle-plugin"
99
apply plugin: "nu.studer.plugindev"
1010
apply plugin: "jacoco"
1111
apply plugin: "maven"
@@ -21,16 +21,20 @@ sourceSets {
2121
srcDirs = ['src/test/groovy', 'src/test/core/src/testFixtures/groovy', 'src/test/internal-testing/src/main/groovy' ]
2222
}
2323
}
24+
}
2425

25-
integTest {
26-
compileClasspath += main.output + test.output
27-
runtimeClasspath += main.output + test.output
28-
}
26+
ext {
27+
gradleVersions = '3.0'
28+
androidGradleBuildVersion = '2.2.0-beta1'
29+
androidCompileSdkVersion = 'android-24'
30+
androidBuildToolsVersion = '24.0.0'
2931
}
3032

31-
configurations {
32-
integTestCompile.extendsFrom testCompile
33-
integTestRuntime.extendsFrom testRuntime
33+
test {
34+
systemProperty 'gradle.versions', gradleVersions
35+
systemProperty 'android.gradle.build.version', androidGradleBuildVersion
36+
systemProperty 'android.compile.sdk.version', androidCompileSdkVersion
37+
systemProperty 'android.build.tools.version', androidBuildToolsVersion
3438
}
3539

3640
dependencies {
@@ -77,15 +81,17 @@ dependencies {
7781
dependency 'org.sonatype.aether:aether-connector-wagon:1.13.1@jar'
7882
}
7983

80-
gradleTest 'com.android.tools.build:gradle:2.2.0-beta1'
81-
84+
testCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
85+
exclude module: 'groovy-all'
86+
}
87+
8288
testCompile 'junit:junit:4.12',
8389
'org.hamcrest:hamcrest-all:1.3',
84-
// from gradle/subprojects/core/core.gradle, gradle/subprojects/internal-testing/internal-testing.gradle and gradle/gradle/dependencies.gradle
85-
'commons-io:commons-io:2.2',
90+
'org.codehaus.groovy:groovy-all:2.4.7'
91+
92+
// from gradle/subprojects/core/core.gradle, gradle/subprojects/internal-testing/internal-testing.gradle and gradle/gradle/dependencies.gradle
93+
testCompile 'commons-io:commons-io:2.2',
8694
'commons-lang:commons-lang:2.6@jar',
87-
'org.spockframework:spock-core:1.0-groovy-2.4@jar',
88-
"org.codehaus.groovy:groovy-all:2.4.7",
8995
'org.objenesis:objenesis:1.2@jar',
9096
'cglib:cglib-nodep:2.2.2',
9197
'org.jmock:jmock:2.5.1',
@@ -95,11 +101,9 @@ dependencies {
95101
'org.jsoup:jsoup:1.6.3',
96102
'com.google.code.findbugs:jsr305:1.3.9@jar',
97103
'org.ow2.asm:asm-all:5.1'
98-
99104
testCompile dependencies.module('org.apache.ivy:ivy:2.2.0'){
100105
dependency "com.jcraft:jsch:0.1.53"
101106
}
102-
103107
testCompile dependencies.module('org.apache.ant:ant:1.9.6') {
104108
dependency 'org.apache.ant:ant-launcher:1.9.6@jar'
105109
}
@@ -170,37 +174,6 @@ pluginBundle {
170174
}
171175
}
172176

173-
ext {
174-
gradleVersions = '3.0'
175-
}
176-
177-
task integTest(type: Test) {
178-
systemProperty 'gradle.versions', gradleVersions
179-
testClassesDir = sourceSets.integTest.output.classesDir
180-
classpath = sourceSets.integTest.runtimeClasspath
181-
reports {
182-
junitXml.destination = "$buildDir/integration-test-results"
183-
reports.html.destination = "$buildDir/reports/integrationTests"
184-
}
185-
}
186-
187-
gradleTest {
188-
versions gradleVersions.split(',')
189-
}
190-
191-
gradleLocations {
192-
searchGradleUserHome = true
193-
includeGradleHome = false
194-
searchGvm = false
195-
download = true
196-
downloadToGradleUserHome = true
197-
useGradleSite = true
198-
}
199-
200-
gradleTest.dependsOn jar
201-
integTest.dependsOn gradleTest
202-
check.dependsOn integTest
203-
204177
jacoco {
205178
toolVersion = "0.7.7.201606060606"
206179
}
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
package org.gradle.api.plugins
2+
3+
import org.gradle.testkit.runner.GradleRunner
4+
import static org.gradle.testkit.runner.TaskOutcome.*
5+
import org.junit.Rule
6+
import org.junit.rules.TemporaryFolder
7+
import spock.lang.Specification
8+
import spock.lang.Shared
9+
import spock.lang.Unroll
10+
11+
class AndroidMavenPluginIT extends Specification {
12+
13+
@Shared def gradleVersions = "${System.properties['gradle.versions']}".split(",")
14+
@Shared def androidGradleBuildVersion = "${System.properties['android.gradle.build.version']}"
15+
@Shared def androidCompileSdkVersion = "${System.properties['android.compile.sdk.version']}"
16+
@Shared def androidBuildToolsVersion = "${System.properties['android.build.tools.version']}"
17+
18+
@Rule final TemporaryFolder testProjectDir = new TemporaryFolder()
19+
20+
File androidManifest
21+
File settingsFile
22+
File buildFile
23+
24+
def setup() {
25+
def srcFolder = testProjectDir.newFolder('src')
26+
def mainFolder = new File(srcFolder, 'main')
27+
mainFolder.mkdirs()
28+
androidManifest = new File(mainFolder, 'AndroidManifest.xml')
29+
settingsFile = testProjectDir.newFile('settings.gradle')
30+
buildFile = testProjectDir.newFile('build.gradle')
31+
}
32+
33+
@Unroll
34+
def "pom is installed with gradle #gradleVersion"() {
35+
given:
36+
androidManifest << """<?xml version="1.0" encoding="utf-8"?>
37+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.test.simple" android:versionCode="1" android:versionName="1.0" >
38+
<application />
39+
</manifest>
40+
"""
41+
42+
settingsFile << "rootProject.name = 'simple'"
43+
44+
def uri = testProjectDir.root.toURI()
45+
buildFile << """
46+
buildscript {
47+
System.properties['com.android.build.gradle.overrideVersionCheck'] = 'true'
48+
49+
repositories {
50+
jcenter()
51+
mavenCentral()
52+
mavenLocal()
53+
}
54+
55+
dependencies {
56+
classpath "com.android.tools.build:gradle:${androidGradleBuildVersion}"
57+
}
58+
}
59+
60+
plugins {
61+
id "com.github.dcendents.android-maven"
62+
}
63+
64+
apply plugin: 'com.android.library'
65+
66+
group = 'org.test'
67+
version = '1.0'
68+
69+
install {
70+
repositories {
71+
// Should be mavenInstaller but cannot find how to override the location
72+
mavenDeployer {
73+
repository(url: "${uri}/${gradleVersion}/repo")
74+
}
75+
}
76+
}
77+
78+
android {
79+
compileSdkVersion "${androidCompileSdkVersion}"
80+
buildToolsVersion "${androidBuildToolsVersion}"
81+
}
82+
83+
task runGradleTest {
84+
dependsOn install
85+
}
86+
"""
87+
88+
when:
89+
def result = GradleRunner.create()
90+
.withGradleVersion(gradleVersion)
91+
.withProjectDir(testProjectDir.root)
92+
.withArguments('install')
93+
.withPluginClasspath()
94+
.build()
95+
96+
then:
97+
result.task(":install").outcome == SUCCESS
98+
validateRepo(gradleVersion);
99+
100+
where:
101+
gradleVersion << gradleVersions
102+
}
103+
104+
private void validateRepo(String version) {
105+
File repo = new File(testProjectDir.root, version + "/repo/org/test/simple")
106+
assert repo.exists()
107+
108+
File metadata = new File(repo, "maven-metadata.xml");
109+
File metadataMd5 = new File(repo, "maven-metadata.xml.md5");
110+
File metadataSha1 = new File(repo, "maven-metadata.xml.sha1");
111+
assert metadata.exists()
112+
assert metadataMd5.exists()
113+
assert metadataSha1.exists()
114+
115+
File aar = new File(repo, "1.0/simple-1.0.aar");
116+
File aarMd5 = new File(repo, "1.0/simple-1.0.aar.md5");
117+
File aarSha1 = new File(repo, "1.0/simple-1.0.aar.sha1");
118+
assert aar.exists()
119+
assert aarMd5.exists()
120+
assert aarSha1.exists()
121+
122+
File pom = new File(repo, "1.0/simple-1.0.pom");
123+
File pomMd5 = new File(repo, "1.0/simple-1.0.pom.md5");
124+
File pomSha1 = new File(repo, "1.0/simple-1.0.pom.sha1");
125+
assert pom.exists()
126+
assert pomMd5.exists()
127+
assert pomSha1.exists()
128+
}
129+
}

0 commit comments

Comments
 (0)