0

I have few methods in my scala play framework application that I want to be excluded from scoverage report. Is there any way to achieve this? May be similar to using @Generated annotations for methods to be excluded as for Jacoco 0.8.2 release. Example:

class TestClass {
    @Generated
    def methodN = {} 
}

Or may be use something like excludeMethods += "TestClass.methodN, TestClass.methodX" in build.sbt file?

Sameer Mirji
  • 2,135
  • 16
  • 28

1 Answers1

1

From the docs I'd say that without changing the source code you can exclude only class/package/file from your build tool

// examples of scalac options from the docs
// add as e.g. scalacOptions += "-P:scoverage:..." if you are using sbt

-P:scoverage:excludedPackages:.*\.utils\..*;.*\.SomeClass;org\.apache\..*

-P:scoverage:excludedFiles:.*\/two\/GoodCoverage;.*\/three\/.*

but if you can modify the source code you can exclude whatever you want by putting the right comments around it

// $COVERAGE-OFF$
def methodIWantToIgnore = 2 + 2
// $COVERAGE-ON$

If it's the code you written yourself I would use comments, and if it was something spit by the codegen I would suggest the compiler options (scoverage works as a compiler plugin, slightly changing emitted bytecode).

Mateusz Kubuszok
  • 24,995
  • 4
  • 42
  • 64