Skip to content

Commit 0607e9c

Browse files
authored
Merge pull request #89 from ferozco/fo/inherit-env-var
Test sets inherit existing environemnt
2 parents 0923b59 + 1fd5988 commit 0607e9c

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed

src/integrationTest/kotlin/org/unbrokendome/gradle/plugins/testsets/EnvironmentVariablesIntegrationTest.kt

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import assertk.assertions.isEqualTo
55
import assertk.assertions.isNotNull
66
import assertk.assertions.prop
77
import org.gradle.testkit.runner.BuildTask
8+
import org.gradle.testkit.runner.GradleRunner
89
import org.gradle.testkit.runner.TaskOutcome
10+
import org.junit.jupiter.api.Test
911
import org.junit.jupiter.params.ParameterizedTest
1012
import org.junit.jupiter.params.provider.ValueSource
1113

@@ -71,7 +73,68 @@ class EnvironmentVariablesIntegrationTest : AbstractGradleIntegrationTest() {
7173
.prop("outcome", BuildTask::getOutcome)
7274
.isEqualTo(TaskOutcome.SUCCESS)
7375
}
76+
}
77+
78+
@Test
79+
fun `should inherit existing environment variables`() {
80+
directory(projectDir) {
81+
file("build.gradle.kts", """
82+
plugins {
83+
`java`
84+
id("org.unbroken-dome.test-sets")
85+
}
86+
87+
repositories {
88+
jcenter()
89+
}
90+
91+
testSets {
92+
createTestSet("integrationTest") {
93+
environment("TESTVAR2", "TESTVALUE")
94+
}
95+
}
96+
97+
dependencies {
98+
testImplementation("org.junit.jupiter:junit-jupiter-api:5.5.2")
99+
testImplementation("org.junit.jupiter:junit-jupiter-engine:5.5.2")
100+
}
101+
102+
tasks.withType<Test> {
103+
useJUnitPlatform()
104+
}
105+
""")
74106

107+
directory("src/integrationTest/java") {
108+
file("EnvironmentTest.java", """
109+
import static org.junit.jupiter.api.Assertions.*;
110+
import org.junit.jupiter.api.Test;
111+
112+
class EnvironmentTest {
113+
114+
@Test
115+
void shouldHaveEnvironmentAvailable() {
116+
String value = System.getenv("TESTVAR");
117+
assertEquals("TESTVALUE", value);
118+
value = System.getenv("TESTVAR2");
119+
assertEquals("TESTVALUE", value);
120+
}
121+
}
122+
""")
123+
}
124+
125+
val result = GradleRunner.create()
126+
.withProjectDir(projectDir)
127+
.withPluginClasspath()
128+
.withArguments("integrationTest", "-s")
129+
.withEnvironment(mapOf("TESTVAR" to "TESTVALUE"))
130+
.build()
131+
132+
assertThat(result, "result")
133+
.prop("for task integrationTest") { it.task(":integrationTest") }
134+
.isNotNull()
135+
.prop("outcome", BuildTask::getOutcome)
136+
.isEqualTo(TaskOutcome.SUCCESS)
137+
}
75138
}
76139

77140

src/main/kotlin/org/unbrokendome/gradle/plugins/testsets/TestSetsPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ class TestSetsPlugin
162162
testSet.sourceSet.let { sourceSet ->
163163
task.testClassesDirs = sourceSet.output.classesDirs
164164
task.classpath = sourceSet.runtimeClasspath
165-
task.environment = testSet.environment
165+
task.environment(testSet.environment)
166166
task.systemProperties = testSet.systemProperties
167167
}
168168
}

src/main/kotlin/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskEnvironmentObserver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal class TestTaskEnvironmentObserver(
1414
override fun environmentVariablesChanged(testSet: TestSetBase, newEnvironment: Map<String, Any?>) {
1515
val testTaskName = (testSet as TestSet).testTaskName
1616
(tasks.findByName(testTaskName) as? Test?)?.let { task ->
17-
task.environment = newEnvironment
17+
task.environment(newEnvironment)
1818
}
1919
}
2020
}

0 commit comments

Comments
 (0)