2

我有一个 Scala + Akka + Gradle 应用程序和以下测试:

class UserCRUDSpec() extends TestKit(ActorSystem("UserCRUDSpec"))
  with ImplicitSender
  with WordSpecLike
  with Matchers
  with Mockito
  with DomainSuit {

  val userDao: UserDao = mock[UserDao]
  val actor: ActorRef = system.actorOf(UserCRUD.props(self, userDao))

  "The UserCRUD actor " must {

    "search actor by id if actorId specified and exists" in {
       ...
    }

  }

}

和一个 gradlebuild.gradle依赖项:

    apply plugin: 'scala'

    dependencies {
        compile 'org.scala-lang:scala-compiler:2.12.6'
        compile('com.typesafe.akka:akka-cluster_2.12:2.5.14') {
            exclude group: 'org.scala-lang'
        }
        testCompile ('com.typesafe.akka:akka-testkit_2.12:2.5.14') {
            exclude group: 'org.scala-lang'
        }
        testCompile ('org.scalatest:scalatest_2.12:3.0.5') {
            exclude group: 'org.scala-lang'
        }
        testCompile ('org.specs2:specs2-core_2.12:4.3.3') {
            exclude group: 'org.scala-lang'
        }
        testCompile ('org.specs2:specs2-mock_2.12:4.3.3') {
            exclude group: 'org.scala-lang'
        }
    }
}

当我运行时./gradle test,它说没有找到测试。有什么办法可以添加 TestKit 测试以对gradle test任务可见?

4

1 回答 1

1

最后,我只是切换到 scalatest 和指定的演员系统:

class UserCRUDSpec() extends WordSpec with TestKitBase ... {
  ...
  implicit lazy val system: ActorSystem = ActorSystem("UserCRUDSpec")
  ...
}
于 2018-08-14T15:42:15.500 回答