18

JUnitテストで警告を表示したいのですが。その警告のためにテストが失敗することを望まないが、警告が発生することを知りたい。もちろん、私はSystem.err.printまたは同様のものを使用することができます。今、私はそれを行う正しい方法は何であるか疑問に思います

4

3 に答える 3

9

これは時々役立つと思いましたが、これはできません。JUnit は正解と不正解を主張するため、「成功」、「失敗」、「エラー」しかありません。エラーは、テストの実行中にコードで何かが壊れたときです。リファクタリングして、本当に警告が必要かどうかを検討します(または、前の回答が示唆するようにログに記録しますが、この警告はすぐに失われると思います)、

于 2012-12-25T08:53:02.993 に答える
6

コンソールアペンダー付きのロガーを使用してください

final Logger logger = LoggerFactory.getLogger(LoggingTest.class);

@Test
public void test() {
    logger.warn("message");
}  

PS。slf4jロガーの使用例。

于 2012-12-25T08:46:33.223 に答える
2

テストに固有の log4j 構成を持つことができます。

ステップ 1:テスト用の log4j の構成を含むファイル src/test/resources/test-log4j.properties を作成します。

例:

log4j.rootLogger=DEBUG, R
log4j.appender.R=org.apache.log4j.ConsoleAppender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{3}:%L - %m%n

ステップ 2: pom.xml を次のように編集します。

<build>
 ...
 <plugins>

   <plugin>
     <artifactid>maven-surefire-plugin</artifactid>
     <version>2.3</version>
     <configuration>
       <systemproperties>
         <property>
           <!-- Specific log4j config for tests -->
           <name>log4j.configuration</name>
           <value>test-log4j.properties</value>
         </property>
       </systemproperties>
     </configuration>
   </plugin>
   ...
 </plugins>
</build>

log4j.properties は src/main/webapp/WEB-INF/classes/ にあります

お役に立てれば。

于 2012-12-25T08:57:38.430 に答える