为什么在IntelliJ中运行Scala 2.13测试而不是在Scala 2.12中运行时出现此错误?

Gre*_*aro 15 scala intellij-idea scalatest scala-2.13

当我尝试在带有Scala 2.13的IntelliJ(2019.1),Scala IntelliJ插件v2019.1.8中运行测试时遇到以下错误:

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)
Run Code Online (Sandbox Code Playgroud)

以下是我的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'
}
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*lic 13

更新:这已被固定在插件版本2019年1月9日。


IntelliJ Scala插件可能需要更新2.13。同时,通过选择复选框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