Не удалось найти контрольный пример при использовании scalatest для проверки akka, что мне нужно сделать, чтобы исправить это? - PullRequest
0 голосов
/ 01 ноября 2019

Я только что получил akka и scalatest, и я изучаю документ akka, чтобы изучить его. Но когда мне интересно проверить демонстрационный код, как сказал официальный веб-сайт, кажется, что он не работает должным образом. Тестовый код выглядит следующим образом.

package com.example

import akka.actor.ActorSystem
import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit
import akka.testkit.TestProbe
import org.scalatest.WordSpecLike

class IotTest extends ScalaTestWithActorTestKit with WordSpecLike {

  "Iot actor system" must {
    "reply with empty reading if no temperature is known" in {
      implicit val system: ActorSystem = ActorSystem("Iot")
      val probe = TestProbe()
      val deviceActor = system.actorOf(Device.props("group", "device"))

      deviceActor.tell(Device.ReadTemperature(requestId = 42), probe.ref)
      val response = probe.expectMsgType[Device.RespondTemperature]
      response.requestId should ===(42L)
      response.value should ===(None)
    }
  }

}

, когда я запускаю sbt в командной строке и запускаю testOnly IotTestКоманда, ответ выглядит следующим образом:

[info] Done compiling.
[info] Run completed in 9 milliseconds.
[info] Total number of tests run: 0
[info] Suites: completed 0, aborted 0
[info] Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0
[info] No tests were executed.
[info] No tests to run for Test / testOnly
[success] Total time: 3 s, completed 2019-11-1 10:33:41
sbt:akka-quickstart-scala>

структура каталогов выглядит следующим образом.

│  build.sbt
│  list.txt
│  sbt
│  sbt.bat
├─.idea        
├─project                             
├─sbt-dist
├─src
│  ├─main
│  │  └─scala
│  │      └─com
│  │          └─example
│  │                  ActorFailureHandling.scala
│  │                  ActorHierarchyExperiments.scala
│  │                  ActorLifecycle.scala
│  │                  AkkaQuickstart.scala
│  │                  Device.scala
│  │                  DeviceGroup.scala
│  │                  DeviceGroupQuery.scala
│  │                  DeviceManager.scala
│  │                  IotApp.scala
│  │                  IotSupervisor.scala
│  │                  
│  └─test
│      └─scala
│          └─com
│              └─example
│                      AkkaQuickstartSpec.scala
│                      IotTest.scala
│                      ScalaTestIntegrationExampleSpec.scala
│                      
└─target

в соответствии с ответом, ни один тестовый пример не был выполнен. я был сбит с толку, и я буду признателен, если вы сможете сделать мне одолжение.

1 Ответ

1 голос
/ 04 ноября 2019

Вы должны использовать полное имя теста. testOnly some.package.name.TestName или testOnly *TestName.

...