2016-08-08 15 views
1

ich versucht haben, die Dinge in meinem scalaTest als solche Log:Logging innerhalb Akka Testkit außerhalb Schauspieler

class ChangeSetActorTest extends PersistenceSpec(ActorSystem("Persistent-test-System")) with 

PersistenceCleanup {

val log = Logging(system, this) 

Grundsätzlich lassen Sie uns einfach sagen, dass ChansetActorTest von Testkit erben (System)

Leider

Logging(system, this)

funktioniert nicht mit dieser

Ich bekomme Folgendes Fehler:

[error] /Users/maatary/Dev/IdeaProjects/PoolpartyConnector/src/test/scala/org/iadb/poolpartyconnector/changepropagation/ChangeSetActorTest.scala:22: Cannot find LogSource for org.iadb.poolpartyconnector.changepropagation.ChangeSetActorTest please see ScalaDoc for LogSource for how to obtain or construct one. [error] val log = Logging(system, this)

ich im Akka Logging Doc beleive ist dies die folgende Nummer: und in allen anderen Fällen der Kompilierung ein Fehler auftritt, es sei denn, und implizite LogSource [T] in Rahmen für die in Rede stehenden Art ist.

Mit anderen Worten gibt es keine LogSource [Testkit]

Ich würde die einfachste Lösung, wie mit diesem Thema zu befassen, mit einer minimalen zusätzlichen Konfiguration. Bisher was ich tat, ist die folgende und alles funktioniert wie erwartet:

class ChangeSetActorTest extends PersistenceSpec(ActorSystem("Persistent-test-System")) with 

PersistenceCleanup {

 val log = system.log 

Von dort habe ich einfach gehen und Dinge tun, wie

val received = chgtFetcher.receiveWhile((requestInterval + ProcessingLag).*(3)) { 
    case msg:FetchNewChangeSet => log.info(s"received: ${msg}") ; chgtFetcher.reply(NoAvailableChangeSet); msg 
} 

Meine Frage ist diese appraoch empfohlen. Bis jetzt ist die Reihenfolge der Nachricht, die von meinem Akteur und der Testperson kommt, gut geordnet.

Bitte Wolke Sie mir die empfohlene appraoch wissen lassen, in einem einheitlichen appraoch protokollieren:

1 - Von der Test-Klasse (zum Beispiel oben) und der Schauspieler zugleich?

2 - Wenn man ein System benutzt, in dem auch externe Klassen loggen müssen und wir eine einheitliche Protokollierung (asynchron) benötigen.

Vielen Dank

-M-

Antwort

Verwandte Themen