diff --git a/.gitignore b/.gitignore index 7763a3a..e48a70c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ build/ .idea/ *.iml +.project # Ignore Gradle GUI config gradle-app.setting diff --git a/CHANGELOG.md b/CHANGELOG.md index a2ba65a..4d694ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # gradle-opencover-plugin changelog +## 1.13 +### Fixed +* Do not evaluate targetAssemblies when applying the plugin + +### Changed +* Remove gpars and use parallelStream instead + ## 1.11 ### Added * Add threshold parameter for OpenCover. [usage] (https://github.com/OpenCover/opencover/wiki/Usage). diff --git a/build.gradle b/build.gradle index fd2a8fc..4b44f5b 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,7 @@ plugins { apply plugin: 'groovy' dependencies { - compile 'commons-io:commons-io:1.3.2' - compile 'org.codehaus.gpars:gpars:1.2.1' + compile 'commons-io:commons-io:2.6' compile 'com.ullink.gradle:gradle-nunit-plugin:1.12' } diff --git a/src/main/groovy/com/ullink/gradle/opencover/OpenCover.groovy b/src/main/groovy/com/ullink/gradle/opencover/OpenCover.groovy index f2d0718..d0d5b10 100644 --- a/src/main/groovy/com/ullink/gradle/opencover/OpenCover.groovy +++ b/src/main/groovy/com/ullink/gradle/opencover/OpenCover.groovy @@ -1,11 +1,9 @@ package com.ullink.gradle.opencover -import groovyx.gpars.GParsPool import org.apache.commons.io.FilenameUtils import org.gradle.api.DefaultTask import org.gradle.api.GradleException import org.gradle.api.Task -import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.provider.ListProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.InputFiles @@ -22,8 +20,9 @@ class OpenCover extends DefaultTask { Property parallelForks ListProperty parallelTargetExecArgs Property registerMode + @InputFiles - ConfigurableFileCollection targetAssemblies + ListProperty targetAssemblies def excludeByFile def excludeByAttribute def hideSkipped @@ -45,6 +44,7 @@ class OpenCover extends DefaultTask { targetExecArgs = project.getObjects().listProperty(String) parallelForks = project.getObjects().property(Boolean) parallelTargetExecArgs = project.getObjects().listProperty(String) + targetAssemblies = project.getObjects().listProperty(File) registerMode.set('user') } @@ -104,7 +104,7 @@ class OpenCover extends DefaultTask { if (hideSkipped) commandLineArgs += '-hideskipped:' + hideSkipped if (threshold) commandLineArgs += '-threshold:' + threshold - def filters = targetAssemblies.collect { "+[${FilenameUtils.getBaseName(it.name)}]*" } + def filters = targetAssemblies.get().collect { "+[${FilenameUtils.getBaseName(it.name)}]*" } commandLineArgs += '-filter:\\"' + filters.join(' ') + '\\"' commandLineArgs += "-target:${targetExec.get()}" @@ -123,15 +123,15 @@ class OpenCover extends DefaultTask { def runMultipleOpenCovers(ArrayList commandLineArgs) { def execArgs = parallelTargetExecArgs.get() logger.info "Preparing to run ${execArgs.size()} tests..." - GParsPool.withPool { - execArgs.eachParallel { + + execArgs.parallelStream() + .forEach { def fileName = "${fileNameId.getAndIncrement()}" logger.info("Filename generated for the ${it} input was ${fileName}") def currentTestArgs = ["\"-targetargs:${it.collect({ escapeArg(it) }).join(' ')}\""] currentTestArgs += "-output:${new File(reportsFolder, fileName + ".xml")}" execute(commandLineArgs + currentTestArgs) } - } } def escapeArg(arg) { diff --git a/src/main/groovy/com/ullink/gradle/opencover/OpenCoverPlugin.groovy b/src/main/groovy/com/ullink/gradle/opencover/OpenCoverPlugin.groovy index 1af1950..f3e4602 100644 --- a/src/main/groovy/com/ullink/gradle/opencover/OpenCoverPlugin.groovy +++ b/src/main/groovy/com/ullink/gradle/opencover/OpenCoverPlugin.groovy @@ -27,13 +27,13 @@ class OpenCoverPlugin implements Plugin { project.plugins.withId('com.ullink.msbuild') { def msbuildTask = project.tasks.msbuild - task.targetAssemblies = project.files ( + task.targetAssemblies.set(project.provider { msbuildTask.projects.findAll { !(it.key =~ 'test') && it.value.properties.TargetPath }.collect { - it.value.getProjectPropertyPath('TargetPath').toString() + project.file(it.value.getProjectPropertyPath('TargetPath').toString()) } - ) + }) } }