2011-01-16 3 views
2

Эй, я использую SpringJUnit4ClassRunner и запускаю большие комплекты тестов с использованием интерфейса eclipse. Когда тесты терпят неудачу, я вижу исключения и полную трассировку стека в представлении junit. Я бы хотел, чтобы они также были зарегистрированы.
(Использование log4j, завернутое apache.commons.logging)Как сделать JUnit4 зарегистрировать все неиспользуемые исключения?

ответ

2

Продлить SpringJUnit4ClassRunner:

public class MySpringJUnit4ClassRunner extends SpringJUnit4ClassRunner{ 
    @Override 
    public void run(RunNotifier notifier) { 
    EachTestNotifier testNotifier= new EachTestNotifier(notifier, 
      getDescription()); 
    try { 
     Statement statement= classBlock(notifier); 
     statement.evaluate(); 
    } catch (AssumptionViolatedException e) { 
     testNotifier.fireTestIgnored(); 
     Logger.error(e); 
    } catch (StoppedByUserException e) { 
     Logger.error(e); 
     throw e; 
    } catch (Throwable e) { 
     testNotifier.addFailure(e); 
     Logger.error(e); 
    } 
    } 
//... 
} 

Затем используйте MySpringJUnit4ClassRunner в качестве бегуна.

0

Если вы используете maven для сборки, он поставляется в комплекте с надежным плагином для плагинов, который предоставляет подробный отчет о тестовых примерах. В eclipse вы можете запустить консоль приложений. Я считаю, что это в runconfig приложения. Хотя я не знаю точных деталей.

0

если добавить log4j в ваш проект, вы можете войти исключения с:

инициализации регистратор в вашем TestClass:

private static final Logger logger = Logger.getLogger(YourClassNameclass); 

сюда код, чтобы войти в сообщение:

try{ 
your code here... 
} catch (SomeException e){ 
logger.error("Description of your error", e); 
} 

и здесь шаблон в log4j.properties для регистрации сообщений в файле:

log4j.rootLogger=ALL,A1 

log4j.appender.A1=org.apache.log4j.FileAppender 
log4j.appender.A1.File=Testlogfile.log 
log4j.appender.A1.append=false 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=\ 
%-4r [%t] %-5p %c %x -%m%n 

удачи! :)

+0

Согласен. JUnit не предоставляет лог-модуль, вы должны сами написать код журнала. –