【发布时间】:2022-08-09 15:24:41
【问题描述】:
我试图用 spark-testing-base 和 scalatest 运行 Spark UT,得到以下异常:
[error] sbt.ForkMain$ForkError: java.lang.IncompatibleClassChangeError: Expected instance not static method org.scalatest.Assertions.assertionsHelper()Lorg/scalatest/Assertions$AssertionsHelper;
[error] at com.holdenkarau.spark.testing.StreamingSuiteBase.verifyOutput(StreamingSuiteBase.scala:77)
[error] at com.holdenkarau.spark.testing.StreamingSuiteBase.verifyOutput$(StreamingSuiteBase.scala:61)
[error] at com.central.spark.aggregation.streaming.BaseAggregatorSuite.verifyOutput(BaseAggregatorSuite.scala:23)
[error] at com.holdenkarau.spark.testing.StreamingSuiteBase.$anonfun$testOperation$1(StreamingSuiteBase.scala:162)
[error] at com.holdenkarau.spark.testing.StreamingSuiteBase.$anonfun$testOperation$1$adapted(StreamingSuiteBase.scala:158)
[error] at com.holdenkarau.spark.testing.StreamingSuiteCommon.withOutputAndStreamingContext(StreamingSuiteCommon.scala:122)
[error] at com.holdenkarau.spark.testing.StreamingSuiteCommon.withOutputAndStreamingContext$(StreamingSuiteCommon.scala:114)
[error] at com.central.spark.aggregation.streaming.BaseAggregatorSuite.withOutputAndStreamingContext(BaseAggregatorSuite.scala:23)
[error] at com.holdenkarau.spark.testing.StreamingSuiteBase.testOperation(StreamingSuiteBase.scala:158)
[error] at com.holdenkarau.spark.testing.StreamingSuiteBase.testOperation$(StreamingSuiteBase.scala:149)
[error] at com.central.spark.aggregation.streaming.BaseAggregatorSuite.testOperation(BaseAggregatorSuite.scala:23)
[error] at com.central.spark.aggregation.streaming.BaseAggregatorSuite.$anonfun$new$1(BaseAggregatorSuite.scala:89)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) (truc)
依赖项及其版本是:
lazy val coreTestDeps = Seq(
\"org.mockito\" % \"mockito-all\" % 1.10.19 % \"test\",
\"org.scalatest\" %% \"scalatest\" % 3.2.12 % \"it,test\",
\"net.sf.opencsv\" % \"opencsv\" % 2.3 % \"test\",
\"org.json4s\" %% \"json4s-native\" % 3.7.0-M11 % \"it,test\",
\"org.json4s\" %% \"json4s-jackson\" % 3.7.0-M11 % \"it,test\",
\"org.apache.spark\" %% \"spark-streaming\" % 3.2.1 % \"provided\" classifier \"tests\",
\"org.apache.spark\" %% \"spark-core\" % 3.2.1 % \"provided\" classifier \"tests\",
\"com.holdenkarau\" %% \"spark-testing-base\" % \"3.2.0_1.1.1\" % \"test\",
\"org.elasticsearch.client\" % \"elasticsearch-rest-high-level-client\" % 7.9.3 % \"it,test\"
)
我尝试将org.scalatest 降级为3.0.9 和其他版本,但它不起作用。按照spark-testing-base repo 的建议,在 build.sbt 中有以下内容:
scalaVersion := \"2.12.15\",
Test / parallelExecution := false,
Test / fork := true,
javaOptions ++= Seq(\"-Xms512M\", \"-Xmx2048M\", \"-XX:MetaspaceSize=2048M\", \"-XX:+CMSClassUnloadingEnabled\")
关于我应该如何进行的任何建议? 感谢任何帮助。
标签: apache-spark spark-streaming scalatest