2012-12-25 16 views
7

JUnit testinde bir uyarı görüntülemek istiyorum. Bu uyarı nedeniyle testin başarısız olmasını istemiyorum ama uyarının gerçekleştiğini bilmek istiyorum. Açıkçası, System.err.print veya benzer bir şey kullanabilirim. Şimdi konsol appender ile oJUnit testlerinde uyarı

+0

Bu uyarının görünmesini istediğiniz yere bağlıdır? Konsol? Genel olarak test çıktı raporu? – fge

cevap

5

Bunun da zaman zaman yararlı olacağını düşündüm, ama bu yapılamaz. JUnit doğru ve yanlış bir cevapta ısrar ediyor ve bu yüzden sadece "başarı", "başarısız" ve "hata" var. Testi çalıştırırken kodda bir şey kırıldığında meydana gelen bir hata. Eğer gerçekten bir uyarıya ihtiyacınız olursa (ve eğer bu uyarının yakında kaybolmasını beklese de, önceki cevabın bir sonucu çıkarsa),

+0

Muhtemelen, çubuk hala kırmızı olsa da, TestSuite.warning (String) kullanın. –

4

kullanımı logger yapmak sağ yoludur merak bunun

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

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

PS için. Slf4j logger kullanarak örnek.

2

testlerine özgü log4j konfigürasyonuna sahip olabilirsiniz.

Adım 1: testleriniz için log4j yapılandırmasını içeren bir src/test/sources/test-log4j.properties oluşturun.

Örnek:

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 

Adım 2: Aşağıdaki gibi pom.xml düzenleyin: src/main/Webapp/WEB-INF bulunan

<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> 

Şimdi log4j.properties/Sınıflar/

Bu yardımcı olur umarım.