2015-04-09 4 views
0

В тестовом примере JUnit (4.x) я хочу получить информацию о журнале, если одно из утверждений не выполнено. Предположим, что это тестовый класс:Показать результат неудачных тестов JUnit в консоли

package a.b.c.d; 

import org.junit.Assert; 
import org.junit.Test; 

public class SomeTestClass { 

    @Test 
    public void someSimpleTest() { 
     Assert.assertEquals("123", "456"); 
    } 
} 

Очевидно, что Assert.assertEquals("123", "456"); потерпит неудачу. Когда я запускаю этот тест из Eclipse, я получаю только ошибку Failure Trace с исключением. Я хотел бы иметь некоторую информацию напечатанную на консоль о том, что на самом деле не удалось, например .:

Expected Value: "123"; Actual Value "456"; 

Поискав в интернете я наткнулся на этот пример здесь, который предоставляет информацию о том, что мне нужно. Однако я не могу получить этот вывод журнала в консоли.

org.junit.ComparisonFailure: expected:<gradle is gr[8]> but was:<gradle is gr[eat]> 
    at org.junit.Assert.assertEquals(Assert.java:115) 
    at org.junit.Assert.assertEquals(Assert.java:144) 
    at com.mrhaki.gradle.SampleTest.sample(SampleTest.java:8) 

То, что я пробовал до сих пор, - это что-то вроде ниже, что не помогло.

-Djava.util.logging.ConsoleHandler.level=FINEST 

static { 
    Logger.getGlobal().setLevel(Level.FINEST); 
} 
+0

Вот что-то об этом http://stackoverflow.com/questions/1119385/junit-test-for-system-out-println –

+0

@newuserua_ext Возможно, я неправильно понял эту тему, но я не хочу тестировать консольный выход. Я просто хочу увидеть вывод журнала JUnit в консоли. – Stephan

ответ

0

Вы можете попробовать поймать ComparisonFailure:

@Test 
public void someSimpleTest() { 
    try { 
     Assert.assertEquals("123", "456"); 
    } catch(ComparisonFailure e) { 
     System.out.println(e.getMessage); 
    } 
} 

Вы также можете использовать getActual() и getExpected(). Больше doc here

Смежные вопросы