【Scala】ScalaTest ~ with Coverage ~

■ はじめに

将来的に必要になるであろう
Scalaのカバレッジツール (code coverage)について
未来の自分のために調べてみた

目次

【0】Scalaのカバレッジツール
 1)メモ:採用候補
【1】sbt-jacoco
【2】sbt-scoverage
【3】Cobertura
【4】その他のJavaのカバレッジツール

【0】Scalaカバレッジツール

* 調べた限りだと以下。

1)sbt-jacoco
2)sbt-scoverage
3)Cobertura
4)その他のJavaのカバレッジツール

 => 結局は、Java由来のものがほとんど、、、

1)メモ:採用候補

1)sbt-jacoco
2)sbt-scoverage
で、Githubの更新を見る限りまで開発している模様だが
リリース頻度は、「2)sbt-scoverage」が優勢か、、、

【1】sbt-jacoco

https://www.scala-sbt.org/sbt-jacoco/index.html
Github
https://github.com/sbt/sbt-jacoco

1)JaCoCo

JaCoCo = Java Code Coverage Library

https://www.jacoco.org/jacoco/trunk/index.html

2)追加方法

* project/plugins.sbt がなければ、自分で新規に追加する

https://www.scala-sbt.org/sbt-jacoco/getting-started.html

project/plugins.sbt

// 追加例
addSbtPlugin("com.github.sbt" % "sbt-jacoco" % "3.5.0")

3)実行方法

sbtコマンド

// For sbt-jacoco
sbt jacoco

【2】sbt-scoverage

https://github.com/scoverage/sbt-scoverage

参考文献
https://yoshinorin.net/articles/2018/08/14/scalatest-and-coverage/
https://qiita.com/mikene_koko/items/72a70a9f7cae03212eae

2)追加方法

* /project/plugins.sbt に以下を追加(なければ自分で作る)

./project/plugins.sbt

addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.8")

https://mvnrepository.com/artifact/org.scoverage/sbt-scoverage

3)実行方法

sbtコマンド

// sbt-scoverage 
sbt clean coverage test
sbt coverageReport

// 一気にやるには
sbt clean coverage test coverageReport
・・・
[info] Written HTML coverage report [/home/user/flink/hello-flink-kafka-posgre/target/scala-2.12/scoverage-report/index.html]
[info] Statement coverage.: 2.73%
[info] Branch coverage....: 0.00%
[info] Coverage reports completed
[info] All done. Coverage was stmt=[2.73%] branch=[0.00%]
[success] Total time: 1 s, completed Aug 8, 2023, 12:15:11 AM

【3】Cobertura

* Java に関する関連記事は、以下を参照のこと

Javaカバレッジツール ~ Cobertura 編 ~
https://dk521123.hatenablog.com/entry/2015/09/05/140100

【4】その他のJavaカバレッジツール

* Java に関する関連記事は、以下を参照のこと

Javaカバレッジツール ~ EclEmma 編 ~
https://dk521123.hatenablog.com/entry/2015/07/11/014015

関連記事

ScalaTest ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/27/001306
ScalaTest ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/03/28/003906
ScalaTest ~ with Mockito ~
https://dk521123.hatenablog.com/entry/2023/03/31/002830
ScalaTest ~ with ScalaCheck ~
https://dk521123.hatenablog.com/entry/2023/03/29/000014
SBT ~ sbtプラグイン
https://dk521123.hatenablog.com/entry/2023/01/25/000000
Javaカバレッジツール ~ Cobertura 編 ~
https://dk521123.hatenablog.com/entry/2015/09/05/140100
Javaカバレッジツール ~ EclEmma 編 ~
https://dk521123.hatenablog.com/entry/2015/07/11/014015
Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331