如何在使用maven构建的Java项目中编译spark-testing-base?

How to compile spark-testing-base in Java project built with maven?

我对 Java 没有太多经验,但我使用 Java 构建了一个 Spark 应用程序。 我想为我的 Spark 应用程序编写一些单元测试。 我看到 spark-testing-base 对此非常有用。 我已将以下内容添加到我的 pom.xml:

<dependency>
    <groupId>com.holdenkarau</groupId>
    <artifactId>spark-testing-base_2.12</artifactId>
    <version>2.4.5_1.0.0</version>
    <scope>test</scope>
</dependency>

我正在使用 Junit 框架,但在尝试访问 jsc() 时我的测试失败了。 我目前的测试(还没有太多逻辑):

public class SparkTest extends SharedJavaSparkContext {

 @Test
 public void verifyMapTest() {
     // Create and run the test
     List<String> input = Arrays.asList("1\tHeart", "2\tDiamonds");
     JavaRDD<String> inputRDD = jsc().parallelize(input);
 }
}

我使用以下 maven 命令来构建 Jar: maven 全新安装

看来我并没有真正编译spark-testing-base。 jsc() returns null 并且出现空指针异常。

我发现我的 case.I 的问题是在我的测试中使用 Junit 5(org.junit.jupiter.api.Test)。库指的是“org.junit.Test”。如果我们转到junit4 就可以正常工作了。 提出了 lib 的问题 ->https://github.com/holdenk/spark-testing-base/issues/340 .

希望你也有同样的问题。

几周前我也在寻找 spark-testing-base 库中的 JUnit 5 功能,似乎该库只适用于 JUnit 4。最后,我开始编写自己的 JUnit 5 扩展并写了一篇关于如何做的中型文章。

文章:weikangchia.medium.com/junit-5-spark-testing-bc8eb29b2238