2017-08-14 53 views
0

我有一個項目,我用Slick來建模我的關係數據。我已經寫了幾個利用H2數據庫的單元測試。我已經集成了一個CI管道,將每次提交時的單元測試都遺留給我的主分支!油滑3.0避免當單元測試過度記錄

我使用sbt作爲我的構建工具,而我從構建日誌中看到的是它包含帶有DEBUG消息的日誌行的加載和加載。這些消息是由底層的Slick庫編寫的,我絕對想要擺脫它們。我已經嘗試了幾種方法,但似乎沒有一種能夠對抗那些DEBUG日誌報表。

我的項目是一個遊戲框架基於Web的項目,這裏是我有什麼作爲我在我的build.sbt依賴性:

libraryDependencies ++= Seq(
    ws, 
    "io.monix" %% "monix" % "2.1.0", 
    "com.typesafe.slick" %% "slick" % "3.2.0", 
    "com.typesafe.scala-logging" %% "scala-logging" % "3.4.0", 
    "org.scala-lang.modules" % "scala-async_2.11" % "0.9.6", 
    "com.zaxxer" % "HikariCP" % "2.4.1", 
    "com.typesafe" % "config" % "1.3.1", 
    "mysql" % "mysql-connector-java" % "5.1.26", 

    // test 
    "com.typesafe.akka" %% "akka-testkit" % "2.5.2" % Test, 
    "org.scalatest" %% "scalatest" % "3.0.1" % Test, 
    "com.h2database" % "h2" % "1.4.186" % Test, 
"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.0" % Test 
) 

我試過如下:

  1. 設置日誌級別在build.sbt到INFO

    LOGLEVEL:= Level.Info

不幸的是沒有任何效果!

  • 我使用的logback.xml看起來像這樣:

    <logger name="scala.slick" level="INFO" /> 
    <logger name="play" level="INFO" /> 
    <logger name="application" level="INFO" /> 
    <logger name="akka" level="INFO" /> 
    

  • ,並用於下面的命令時,我運行我的單元測試:

    sbt -Dlogger.resource=conf/logback.xml clean coverage test coverageReport 
    

    但奇怪的是,這並沒有任何影響,因爲我仍然看到那些煩人的DEBUG語句!我正在使用Play Framework 2.5.9!

    回答

    1

    好了,所以這是我做了什麼,得到從油滑擺脫了DEBUG語句:

    修改了我的build.sbt依賴關係:

    // Dependencies needed for Slick 
        "com.typesafe.slick" %% "slick" % "3.2.0", 
        "org.slf4j" % "slf4j-nop" % "1.6.4", 
        "com.typesafe.slick" %% "slick-hikaricp" % "3.2.0" 
    

    添加以下到我的build.sbt:

    javaOptions in Test +="-Dlogger.file=conf/logback.xml" 
    

    並確保在我的應用程序的conf /文件夾中有一個logger.xml! 請注意這個文件應該叫做logback.xml,或者應該從logback開始,就像logback-test.xml否則它不起作用!

    這是我打電話給我的SBT運行單元測試時:

    sbt clean test 
    
    +0

    當你把的logback-的test.xml測試classpath中,像爲src /測試/資源,你甚至不用添加logger.file選項,該文件應該被自動找到。 –