Как сделать так, чтобы JUnit4 регистрировал все неисследованные исключения? - PullRequest
2 голосов
/ 16 января 2011

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

Ответы [ 3 ]

2 голосов
/ 16 января 2011

Расширение 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 голосов
/ 16 января 2011

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

init logger в вашем тестовом классе:

 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 голосов
/ 16 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...