5

I want to exclude some clasess from JaCoCo but the exclude doest seem to work.

For example i want to exclude all Java clasess that end with Dao (for example com.company.EmplyeeDao).

I have tried the following code, but it still shows up when i push this to sonar / use JacocoTestReport.

test { jacoco { append = true destinationFile = file("$buildDir/jacoco/jacocoTest.exec") classDumpFile = file("$buildDir/jacoco/classpathdumps") excludes = ['*Dao'] } } 

I'm using this in combination with Android. What is going on?

2
  • Perhaps try some variations such as *Dao.class or **/*Dao.class. Commented May 21, 2014 at 4:09
  • also see this gradle solution: stackoverflow.com/a/43196918/907576 Commented Jun 15, 2018 at 12:52

2 Answers 2

6

Try something like this:

excludes: ['**/Dao*.class'] 

But as I understand, this will exclude the class from jacoco but the Report that Jacoco creates will show you "0% of coverage": Gradle issue: https://issues.gradle.org/browse/GRADLE-2955

Sign up to request clarification or add additional context in comments.

3 Comments

As I understand, yes. In the gradle issue one person excludes a yahoo and google libraries.
Won't this exclude classes that START with the word Dao? The question was for classes that END with Dao. Should the filter be '**/*Dao.class' ?
that's true what you said but there is no Dao.class file to exclude, the classes are like DaoProfile.class, DaoManager.class, etc. So that's why I'm using Dao*.class.
2

For newer version of gradle (6+) use this:

jacocoTestCoverageVerification { violationRules { rule { includes = ['com/myapp/*'] excludes = [ 'com/myapp/folderToExclude1/*', 'com/myapp/folderToExclude2/*', ] limit { minimum = 0.85 } } } } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.