Skip to content

Commit

Permalink
Fix problems when msbuild project name is not default
Browse files Browse the repository at this point in the history
Change-Id: I1d1a4f861f6d341d702c066690084211335b3b57
  • Loading branch information
ngyukman committed Mar 27, 2019
1 parent 849aeae commit 98f4f56
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 12 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
build/
.idea/
*.iml
.project

# Ignore Gradle GUI config
gradle-app.setting
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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).
Expand Down
3 changes: 1 addition & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
}

Expand Down
14 changes: 7 additions & 7 deletions src/main/groovy/com/ullink/gradle/opencover/OpenCover.groovy
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -22,8 +20,9 @@ class OpenCover extends DefaultTask {
Property<Boolean> parallelForks
ListProperty<String> parallelTargetExecArgs
Property<String> registerMode

@InputFiles
ConfigurableFileCollection targetAssemblies
ListProperty<File> targetAssemblies
def excludeByFile
def excludeByAttribute
def hideSkipped
Expand All @@ -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')
}
Expand Down Expand Up @@ -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()}"
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ class OpenCoverPlugin implements Plugin<Project> {

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())
}
)
})
}
}

Expand Down

0 comments on commit 98f4f56

Please # to comment.