scala - Jacoco 插件显示 Scala 单元测试的 0% 覆盖率报告
问题描述
我已经为我的 Spark-Scala 代码编写了单元测试,如下所示
class SparkReaderTest extends FunSuite with BeforeAndAfterAll{
@transient
var spark:SparkSession = _
override def beforeAll(): Unit = {
spark=
SparkSession
.builder()
.master("local[*]")
.appName("SparkScalaTest")
.getOrCreate()
}
override def afterAll(): Unit = {
spark.stop()
}
test("test for utilities for read operations"){
assert(txtToDFDefault("mockfiles.log",spark).count()>1,"reading raw data")
}
}
这是我的 pom.xml
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.14</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.12</artifactId>
<version>3.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalactic</groupId>
<artifactId>scalactic_2.12</artifactId>
<version>3.0.2</version>
<scope>test</scope>
</dependency>
..............
</dependencies>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.3</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
当我运行 mvn package 命令时,我看到运行了 0 个测试
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running tutorial.ayan.utilities.SparkWriterTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running tutorial.ayan.utilities.SparkReaderTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running tutorial.ayan.utilities.CommonUtilsTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running tutorial.ayan.utilities.ObjectStoreUtilsTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running tutorial.ayan.utilities.SchemaToCaseClassTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
为什么它显示为 0 个测试运行并且覆盖率也显示为 0%?当我从 intellij 手动运行测试时,我可以看到单元测试成功运行以及覆盖率报告。
解决方案
推荐阅读
- javascript - 打字稿获取时间戳的日期
- swift - DJI iOS SDK 以编程方式下载多个图像。首次下载后相机忙
- python - Python + Scrapy + JSON:“NoneType”对象没有属性“body_as_unicode”
- django - 使用 Django ModelForm 建立一对多关系
- android - 如何获得大于 47 的 android 支持库版本
- java - 在大型 oracle 表中搜索值列表时可以获得良好的性能吗?
- ruby - 对于 rubocop 来说,如何处理一个关键的散列线太长了?
- kubernetes - 如何在 AKS 上使用 kubectl 设置 kube-proxy 设置
- javascript - 使用 JavaScript 转换值
- python - 如何将熊猫列转换为大查询表日期格式