scala 如何从平均报告中排除类中的方法?

oknrviil  于 2023-03-02  发布在  Scala
关注(0)|答案(1)|浏览(212)

在我的scala play framework应用程序中,我有一些方法想从scoaverage报告中排除。有什么方法可以做到这一点吗?可能类似于使用@Generated注解来排除Jacoco 0.8.2版本中的方法。例如:

class TestClass {
    @Generated
    def methodN = {} 
}

或者可能在build.sbt文件中使用类似excludeMethods += "TestClass.methodN, TestClass.methodX"的内容?

xpszyzbs

xpszyzbs1#

从文档中可以看出,在不更改源代码的情况下,您可以从构建工具中仅排除类/包/文件

// 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\/.*

但是如果你可以修改源代码,你可以通过在它周围加上正确的注解来排除任何你想要的东西

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

如果是你自己写的代码,我会使用注解,如果是代码生成者吐出来的东西,我会建议编译器选项(scoverage作为编译器插件工作,稍微改变发出的字节码)。

相关问题