考虑 JUnit 类中的 JUnit 方法。它有一些测试和一些 logger.info/debug 语句或其他内容。也许您没有登录 Junit 方法,但我登录了,这为我快速了解某些测试失败的原因节省了很多麻烦。
如果方法到达末尾,我想“删除”这些日志语句,可能使用 SLF4J
实现这一点的一个简单方法是
logger.tick();
告诉记录器标记进一步的日志语句。
logger.tack();
删除所有日志语句直到刻度标记。问题是您无法删除 Eclipse 控制台上的内容;)。
现在我正在使用连续 JUnit 测试,这将使我的生活更加快乐。
最佳答案
我不会对在单元测试中进行日志记录感到不自在,但我想大多数人已经可以使用单元测试框架中内置的日志记录工具了。但是,如果您想实现这一点,则需要在变量中捕获日志(有些人可能建议使用 StringBuilder),然后根据某些死人的开关在测试结束时转储它们(因此,如果开关未命中,单元测试的最后一步是转储保留的日志)。
示例可能如下所示:
public abstract class LoggedTest extends TestCase {
protected boolean displayLog;
protected StringBuilder log;
public void tick() {
displayLog = true;
}
public void tack() {
displayLog = false;
}
public void log(String msg) {
log.append(message);
}
protected void setUp() {
displayLog = false;
log = new StringBuilder();
}
protected void tearDown() {
if(displayLog) {
System.err.println(log);
}
}
}
关于java - 仅当 JUnit 测试方法失败时,如何使用 SLF4J 记录 Java 中的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12534657/