17

当我尝试在 IntelliJ (2019.1)、Scala IntelliJ 插件 v2019.1.8 和 Scala 2.13 中运行测试时出现以下错误:

Exception in thread "ScalaTest-dispatcher" java.lang.NoSuchMethodError: scala.collection.JavaConverters.seqAsJavaListConverter(Lscala/collection/Seq;)Lscala/collection/convert/Decorators$AsJava;
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.treeBuilder.ParallelTreeBuilder.getOrdinalList(ParallelTreeBuilder.java:21)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.treeBuilder.ParallelTreeBuilder$SuiteTree.<init>(ParallelTreeBuilder.java:92)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.treeBuilder.ParallelTreeBuilder.initRun(ParallelTreeBuilder.java:261)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestReporterWithLocation.apply(ScalaTestReporterWithLocation.java:59)
    at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10(DispatchReporter.scala:249)
    at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10$adapted(DispatchReporter.scala:248)
    at scala.collection.immutable.List.foreach(List.scala:312)
    at org.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:248)
    at java.lang.Thread.run(Thread.java:745)

以下是我的 Gradle 依赖项:

dependencies {
    implementation 'org.scala-lang:scala-library:2.13.0'

    testImplementation 'org.scalatic:scalatic_2.13:3.0.8'
    testImplementation 'org.scalatest:scalatest_2.13:3.0.8'
}

当我将依赖项更改为 Scala 2.12.x 时,测试在 IntelliJ 中正确执行,没有错误。这里发生了什么?

4

1 回答 1

16

更新:这已在插件版本 2019.1.9 中修复


可能需要为 2.13 更新 IntelliJ Scala 插件。同时通过选择复选框Use sbtUse UI with sbt被测试的Edit configuration.... 根据Dmitrii Naumenko的说法:

这是固定在

  • 2019.1 EAP #2019.1.8.21
  • 2019.2 每晚
  • 即将在 2019.2 EAP 和 2019.1 新版本中提供

关于 Gradle,尝试配置委托给Gradle Test Runner

  1. 删除现有的 ScalaTest 运行器
  2. Build, Execution, Deployment | Build Tools | Gradle | Runner
  3. 选中复选框Delegate IDE build/run actions to Gradle
  4. 选择Gradle Test Runner
于 2019-06-18T09:26:46.893 回答