日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

教程:测试期间的日志记录

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 教程:测试期间的日志记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

日志記錄是一種流行的解決方案,用于顯示軟件在運行時的運行狀況。

但是,當我們使用jUnit / TestNG對應用程序進行單元測試時,日志記錄會怎樣?

在自動化測試執行期間,我們通常希望看到日志記錄消息,因為我們的主要興趣是測試結果。

能夠在標準的自動測試過程中禁用日志記錄消息將是很好的。

相反,在某些情況下,日志記錄消息在測試時可能有用。 一個典型的例子是,當我們為某些遺留代碼編寫缺少的測試代碼時,在適當覆蓋測試范圍之前,我們不想碰。 在這種情況下,在控制臺上記錄消息可以幫助我們理解代碼及其工作方式。

因此,我們可以確定三個用例:

  • 運行模式 ,在執行應用程序時:啟用日志并根據應用程序的要求進行配置
  • 測試執行模式 ,當一起執行自動測試時:應禁用日志記錄消息
  • 測試創建模式 ,當我們創建新測試時:日志消息很有用,但最好將它們放在控制臺中
  • 讓我們看一個基于Maven和SLF4J的示例, SLF4J是流行的日志記錄外觀。

    • 完整的項目可以在這里找到。

    項目pom.xml中的典型SLF4J配置如下:

    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version><scope>runtime</scope></dependency>

    所述slf4-api依賴是主要的SLF4J庫,而第二個, slf4j-log4j12 ,所引用的可能記錄的發動機(之一LOG4J ),其可工作SLF4J 下方 。

    這是運行模式配置。 在此示例中,項目資源將包含一個LOG4J屬性文件,該文件指示LOG4J應該記錄什么,如何記錄以及在哪里記錄。

    當我們使用不同的日志記錄引擎(如java.util.logging(JDK)和Logback)時,也會發生相同的情況。 有關更多詳細信息,請參見Slf4J手冊 。

    測試執行模式下,我們不想記錄日志,因此我們可以簡單地添加以下范圍測試依賴項

    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-nop</artifactId><version>${slf4j.version}</version><scope>test</scope></dependency>

    NOP記錄器(slf4j-nop)只是丟棄所有記錄。

    重要提示 : pom.xml的依賴關系順序很重要。 將slf4j-nop依賴項放在slf4-api依賴項之后,這樣就可以在測試期間使用它,即使該依賴項中還有另一個日志記錄引擎。

    當pom.xml有多個日志記錄引擎依賴項時,無論如何SLF4J都會顯示如下消息:

    SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:.m2/repository/org/slf4j/slf4j-nop/1.7.12/slf4j-nop-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:.m2/repository/org/slf4j/slf4j-log4j12/1.7.12/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]

    總而言之,下面是一個完整的配置示例:

    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-nop</artifactId><version>${slf4j.version}</version><scope>test</scope></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version><scope>runtime</scope></dependency>

    同樣,應該調整最后一個依賴項以匹配所需的日志記錄引擎。

    如前所述,創建新測試時日志記錄很有用。 在這種情況下( 測試創建模式 ),我們可以用slf4j-simple依賴項臨時替換slf4j-nop ,這將啟用SLF4J Simple logger 。

    現在,在執行測試期間,日志消息將作為System.err消息顯示在控制臺窗口中。 不需要配置文件。

    默認情況下,簡單記錄器不會記錄DEBUG消息。 標準日志記錄級別為INFO。

    您可以使用此處記錄的系統變量來自定義Simple logger行為。

    定義簡單記錄器配置的明智方法是使用[Surefire插件配置部分]( http://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html ):

    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.18.1</version><configuration><systemPropertyVariables><org.slf4j.simpleLogger.defaultLogLevel>DEBUG</org.slf4j.simpleLogger.defaultLogLevel><org.slf4j.simpleLogger.showDateTime>true</org.slf4j.simpleLogger.showDateTime></systemPropertyVariables></configuration></plugin></plugins></build>

    systemPropertyVariables部分中,我們可以使用Simple logger變量名稱創建標簽。 在上面的示例中,啟用了DEBUG和時間戳記錄。

    翻譯自: https://www.javacodegeeks.com/2015/11/tutorial-logging-tests.html

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的教程:测试期间的日志记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。