From 0fb82ac60e01c089bc7df560b7a98cf9475173ea Mon Sep 17 00:00:00 2001 From: Dan Fox Date: Mon, 19 Jun 2017 23:39:02 +0100 Subject: [PATCH 1/2] Ensure the TestTask contains the right classes --- .../testsets/internal/TestTaskListener.groovy | 6 ++---- .../gradle/plugins/testsets/TestTaskTest.groovy | 12 ++++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy b/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy index 218a49d..ed89871 100644 --- a/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy +++ b/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy @@ -32,10 +32,8 @@ class TestTaskListener { if (testTask.metaClass.respondsTo(testTask, "getTestClassesDirs")) { // Gradle 4.0+ // See https://docs.gradle.org/4.0/release-notes.html#detecting-test-classes-for-custom-test-tasks - map('testClassesDirs') { - def sourceSet = (SourceSet) project.sourceSets[testSet.sourceSetName] - sourceSet.output.classesDirs - } + def sourceSet = project.sourceSets[testSet.sourceSetName] + testTask.testClassesDirs += sourceSet.output.classesDirs } else { map('testClassesDir') { def sourceSet = (SourceSet) project.sourceSets[testSet.sourceSetName] diff --git a/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy b/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy index 91a5c03..9a8d9a3 100644 --- a/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy +++ b/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy @@ -47,4 +47,16 @@ class TestTaskTest extends Specification { def junitXmlReportDir = project.file(testTask.reports.junitXml.destination) junitXmlReportDir == new File(project.testResultsDir, 'myTest') } + + + def "testClassesDirs should include the custom test set (in Gradle 4.0)"() { + when: + project.testSets { myTest } + + then: + def testTask = project.tasks['myTest'] as Test + testTask.testClassesDirs[0] == project.sourceSets.test.output.classesDirs.singleFile + testTask.testClassesDirs[1] == project.sourceSets.myTest.output.classesDirs.singleFile + testTask.testClassesDirs.files.size() == 2 + } } From 0551b4614f235e5cb6e85cdc2e27a3d1b2fac91b Mon Sep 17 00:00:00 2001 From: Dan Fox Date: Thu, 22 Jun 2017 14:53:04 +0100 Subject: [PATCH 2/2] testClassesDirs includes classes from custom source set only --- .../gradle/plugins/testsets/internal/TestTaskListener.groovy | 2 +- .../unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy b/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy index ed89871..fedd9fc 100644 --- a/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy +++ b/src/main/groovy/org/unbrokendome/gradle/plugins/testsets/internal/TestTaskListener.groovy @@ -33,7 +33,7 @@ class TestTaskListener { // Gradle 4.0+ // See https://docs.gradle.org/4.0/release-notes.html#detecting-test-classes-for-custom-test-tasks def sourceSet = project.sourceSets[testSet.sourceSetName] - testTask.testClassesDirs += sourceSet.output.classesDirs + testTask.testClassesDirs = sourceSet.output.classesDirs } else { map('testClassesDir') { def sourceSet = (SourceSet) project.sourceSets[testSet.sourceSetName] diff --git a/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy b/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy index 9a8d9a3..a704920 100644 --- a/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy +++ b/src/test/groovy/org/unbrokendome/gradle/plugins/testsets/TestTaskTest.groovy @@ -55,8 +55,7 @@ class TestTaskTest extends Specification { then: def testTask = project.tasks['myTest'] as Test - testTask.testClassesDirs[0] == project.sourceSets.test.output.classesDirs.singleFile - testTask.testClassesDirs[1] == project.sourceSets.myTest.output.classesDirs.singleFile - testTask.testClassesDirs.files.size() == 2 + testTask.testClassesDirs[0] == project.sourceSets.myTest.output.classesDirs.singleFile + testTask.testClassesDirs.files.size() == 1 } }