嘿,我正在使用SpringJUnit4ClassRunner,并使用eclipse UI运行大型测试套件。 当测试失败时,我可以在junit视图中看到异常和完整堆栈跟踪。我希望他们也被记录下来 (使用由apache.commons.logging包装的log4j)
答案 0 :(得分: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作为跑步者。
答案 1 :(得分:0)
如果您使用maven进行构建,它会附带一个确定的fire插件,提供有关测试用例的详细信息报告。在eclipse中,您可以将应用程序控制台记录下来。我相信它是在应用程序的runconfig中。虽然我不知道确切的细节。
答案 2 :(得分:0)
如果将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
祝你好运! :)