在Intellij中运行Scala测试

时间:2014-07-10 07:46:43

标签: scala intellij-idea specs2

我正在尝试在Intellij Coummunity Edition 13.1.3中运行Scala测试(specs2)。我收到以下错误:

Connected to the target VM, address: '127.0.0.1:57980', transport: 'socket'

'Start' method is not found in MyNotifierRunner null

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)
Disconnected from the target VM, address: '127.0.0.1:57980', transport: 'socket'
    at org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.runSingleTest(JavaSpecs2Runner.java:123)
    at org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.main(JavaSpecs2Runner.java:69)
Caused by: java.lang.NoSuchMethodError: org.specs2.matcher.MatchResult$.matchResultAsResult()Lorg/specs2/execute/AsResult;
    at components.reports.ReportsDemographicsComponentTest$$anonfun$1.apply$mcV$sp(ReportsDemographicsComponentTest.scala:14)
    at components.reports.ReportsDemographicsComponentTest$$anonfun$1.apply(ReportsDemographicsComponentTest.scala:13)
    at components.reports.ReportsDemographicsComponentTest$$anonfun$1.apply(ReportsDemographicsComponentTest.scala:13)
    at org.specs2.mutable.SideEffectingCreationPaths$$anonfun$executeBlock$1.apply$mcV$sp(FragmentsBuilder.scala:292)
    at org.specs2.mutable.SideEffectingCreationPaths$class.replay(FragmentsBuilder.scala:264)
    at org.specs2.mutable.Specification.replay(Specification.scala:12)
    at org.specs2.mutable.FragmentsBuilder$class.fragments(FragmentsBuilder.scala:27)
    at org.specs2.mutable.Specification.fragments(Specification.scala:12)
    at org.specs2.mutable.SpecificationLike$class.is(Specification.scala:14)
    at org.specs2.mutable.Specification.is(Specification.scala:12)
    at org.specs2.specification.SpecificationStructure$$anonfun$content$1.apply(BaseSpecification.scala:56)
    at org.specs2.specification.SpecificationStructure$$anonfun$content$1.apply(BaseSpecification.scala:56)
    at org.specs2.specification.SpecificationStructure$class.map(BaseSpecification.scala:44)
    at org.specs2.mutable.Specification.map(Specification.scala:12)
    at org.specs2.specification.SpecificationStructure$class.content(BaseSpecification.scala:56)
    at org.specs2.mutable.Specification.content$lzycompute(Specification.scala:12)
    at org.specs2.mutable.Specification.content(Specification.scala:12)
    at org.specs2.runner.ClassRunner$$anonfun$apply$1$$anonfun$apply$2.apply(ClassRunner.scala:54)
    at org.specs2.runner.ClassRunner$$anonfun$apply$1$$anonfun$apply$2.apply(ClassRunner.scala:54)
    at org.specs2.control.Exceptions$class.tryo(Exceptions.scala:32)
    at org.specs2.control.Exceptions$.tryo(Exceptions.scala:109)
    at org.specs2.runner.ClassRunner$$anonfun$apply$1.apply(ClassRunner.scala:54)
    at org.specs2.runner.ClassRunner$$anonfun$apply$1.apply(ClassRunner.scala:53)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
    at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
    at org.specs2.runner.ClassRunner.apply(ClassRunner.scala:53)
    at org.specs2.runner.ClassRunner.start(ClassRunner.scala:31)
    at org.specs2.runner.ClassRunner.main(ClassRunner.scala:24)
    at org.specs2.runner.NotifierRunner.main(NotifierRunner.scala:24)
    ... 6 more

Process finished with exit code 1

以下是sbt中的一段代码runnig,但在Intellij中失败了:

class ReportsDemographicsComponentTest extends Specification with ReportsComponents {

  "ReportsDemographicsComponent" should {

    s"return empty list of $DeviceStatistics for an inexistent deliveryId" in DBUnitTestsUtils(2) {
      accountId => implicit session =>

        val service = new ReportsDemographicsService(accountId)
        val res = service.deviceStatistics(-1)

        res.size mustEqual 0
    }
}

我已经尝试重新启动Intellij,sbt,清理项目,但努力取得成功。当从sbt命令行进行runnig测试时,一切正常。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

在我的案例中关闭Idea并通过发布

重新生成项目步骤
sbt gen-idea

注意: 您必须将此行放入project/plugins.sbt以获得命令:

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")