2015-03-03 5 views
2

Logger в Play тест v2.3 не работает:Как включить Logger in Play v2.3 test?

"Test example" should { 
    "Test 1" in { 
    import play.api.Logger 

    Logger.debug("hello world") // doesn't work, no output on screen 
    } 
} 

Но если я оберните тест с WithApplication, он работает:

"Test example" should { 
    "Test 1" in new WithApplication { 
    import play.api.Logger 

    Logger.debug("hello world") 
    } 
} 

Но это дает накладные расходы, если я должен обернуть каждый тест с помощью WithApplication только для того, чтобы заставить Logger работать.

Итак, кто-нибудь знает, как заставить Logger работать без WithApplication?

+0

сделали вы включили регистратор от 'application.conf '? – silentprogrammer

+0

Вы используете ['scalatestplus'] (http://www.scalatest.org/plus/play)? Если да, вы можете использовать ['OneServerPerSuite'] (http://doc.scalatest.org/plus-play/1.0.0/index.html#org.scalatestplus.play.OneServerPerSuite) или« OneServerPerTest », которые принесут поддельное приложение к вашему контексту. Это выбор спуска, особенно если вы уже используете ['scalatest'] (http://www.scalatest.org). –

+0

@singhakash: да, если нет, второй тест с использованием 'WithApplication' не будет выполнен. @Nader: Я использую встроенную тестовую библиотеку воспроизведения, которая использует specs2. – null

ответ

0

Если вы используете scalatestplus вы должны переопределить FakeApplication дополнительных настроек для регистратора, вот вам пример, который работает

import org.scalatest._ 
import play.api.test._ 
import play.api.test.Helpers._ 
import org.scalatestplus.play._ 

import play.api.Logger 

class TestExampleLogger extends PlaySpec with OneAppPerSuite { 

    // Override app if you need a FakeApplication with other than 
    // default parameters. 
    implicit override lazy val app: FakeApplication = FakeApplication(additionalConfiguration = Map(
    "logger.application" -> "DEBUG" 
)) 

    "Test example" should { 
    "Test 1" in { 
     import play.api.Logger 

     Logger.debug("hello world") // doesn't work, no output on screen 
    } 
    } 

} 

Надеется, что это помогает

+0

не помогает ... – Ixx