在Intelli-J中运行Scala测试时出错

时间:2016-12-19 15:09:50

标签: scala intellij-idea scalatest

我在通过Intelli-J运行/调试配置运行Scala测试时遇到了一些问题。如果我直接在SBT控制台中运行它们,测试工作正常。

我的配置如下:

enter image description here

我在“运行”控制台面板中收到此错误:

java.lang.IllegalArgumentException: ERROR: -r has been deprecated for a very long time and is no longer supported, to prepare for reusing it for a different purpose in the near future. Please change all uses of -r to -C.
at org.scalatest.tools.ArgsParser$.checkArgsForValidity(ArgsParser.scala:41)
at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:857)
at org.scalatest.tools.Runner$.run(Runner.scala:850)
at org.scalatest.tools.Runner.run(Runner.scala)
at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:141)
at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

我检查过我的插件都是最新的。我是否需要使用特定版本的Scala?或者是否有一些我缺少的额外设置?

2 个答案:

答案 0 :(得分:2)

对于任何有这个问题的人,即使使用较新版本的IntelliJ,我也是如何找出问题所在。我在pom的顶部引入了我试图运行测试的模块中的最新依赖项。然后单个测试将在没有此错误的情况下运行。我将依赖关系移到了pom,直到问题再次出现,找出导致问题的依赖关系。然后我发现依赖项有一些非常古老的依赖项,包括旧的版本的scalatest,它们没有出现在我的依赖树中。此外,这个jar依赖项具有scalatest作为未使用范围测试标记的依赖项。

答案 1 :(得分:0)

Intelli-J 13下的Scala插件似乎存在问题。

我通过升级到Intelli-J 2016.3来解决这个问题,我认为它已被更改为将较新的-C开关传递给ScalaTestRunner。

@JasonF在下面的评论中指出,项目依赖项也会导致scalatest插件出现问题(对他来说就是这种情况)。在升级IDE之前,尝试运行新的示例Scala项目的测试以测试此方案是值得的。