代码覆盖工具为斯卡拉

Scala有哪些可用的代码覆盖工具?

我有斯卡拉规格testing和哈德森持续集成设置。 有什么我可以挂钩到这个设置来衡量和跟踪代码覆盖率?

SCCT是一个编译器插件,它用来收集覆盖数据的类:

http://mtkopone.github.com/scct/

我用Cobertura 。 但是,任何Java覆盖工具应该工作得很好。 唯一的问题是,你最终会在你的覆盖范围列表中产生大量的自动生成的类。 这是因为,虽然Scala编译成非常自然的JVM字节码,但它被迫产生不自然的大量的类,以适应懒惰评估等常见的function特性。

卧底是好一点。

非主stream语言(如Scala)的一个问题是工具很难find,因为它们很难构build。

这篇技术文章简化了任意语言的分支报道 (作者),描述了如何使用通用的工具构build基础结构,以系统的方式为语言构buildtesting覆盖工具,以帮助解决这个问题。

我们已经为Java,C#,COBOL,C,C ++,PL / SQL等实现了testing覆盖工具 ,包括指导员,数据收集和testing覆盖显示和报告。 像这样实现Scala会很简单。

其他答案所带来的解决scheme会产生来自Scala(“自动types化类”)的混淆信息。 开发人员希望看到的是代码中的覆盖数据。 我们使用的方法是使用源代码,所以结果是完全陈述的,只有在源代码方面。 即使testing覆盖查看器也显示覆盖信息覆盖的源代码。

我已经把一个名为xsbt-coveralls- plugin的SBT插件放在一起,它使用scc下的scct,但将结果发布到http://coveralls.io

免责声明: 我只是在昨天(2013年3月10日)刚刚构build这个插件,所以不要指望它是完美的,但发送错误和function请求到GitHub页面

不过,如果您希望将覆盖率报告编码为公开可见,那还是很不错的。 看看这里的结果的例子

我使用jacoco。 它不需要编译或运行时的依赖关系,仪器类不需要专门的仪器阶段。

还与Sonar集成,并在Maven Central上发布。

这里是例子: https : //github.com/Godin/sonar-experiments/tree/master/jacoco-examples/scala-example

我想补充更好的报告:更详细的分支报道makrup,不包括生成的类/方法,并像ScalaDoc一样方便(例如参见SCCT报告)