Java 如何将JUnit测试结果记录到文件中?
我以前从未使用过日志记录机制,但现在我需要将JUnit测试的结果记录到一个文件中 我想将下面测试的结果(无论是通过、失败还是抛出异常)记录到日志文件中Java 如何将JUnit测试结果记录到文件中?,java,junit,Java,Junit,我以前从未使用过日志记录机制,但现在我需要将JUnit测试的结果记录到一个文件中 我想将下面测试的结果(无论是通过、失败还是抛出异常)记录到日志文件中 @Test public void statusCode200() { Assert.assertEquals("Java class".getStatusCode(), 200); } 有人能告诉我如何做到这一点吗 从评论中: 我目前正在使用这个日志机制:–22分钟前的金妮·辛格 fileHandler = new FileHand
@Test
public void statusCode200() {
Assert.assertEquals("Java class".getStatusCode(), 200);
}
有人能告诉我如何做到这一点吗
从评论中: 我目前正在使用这个日志机制:–22分钟前的金妮·辛格
fileHandler = new FileHandler(System.getProperty("user.dir")+"//ExecutionResults.log");
simpleFormatter = new SimpleFormatter();
StreamHandler sh = new StreamHandler(System.out, simpleFormatter);
log.setUseParentHandlers(false);
log.addHandler(sh);
log.addHandler(fileHandler);
fileHandler.setFormatter(simpleFormatter);
fileHandler.setLevel(Level.ALL);
log.setLevel(Level.ALL);
log.config("Logger Configuration done.");
fileHandler.close();
您可以使用JUnit
库中的规则
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import java.io.IOException;
import java.io.PrintWriter;
public class LogJunitTests {
private static StringBuilder builder = new StringBuilder();
@AfterClass
public static void afterClass() throws IOException {
PrintWriter logFile = new PrintWriter("You Log Path", "UTF-8");
logFile.write(builder.toString());
logFile.close();
}
@Rule
public TestWatcher watchman = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
if (description != null) {
builder.append(description);
}
if (e != null) {
builder.append(' ');
builder.append(e);
}
builder.append(" FAIL\n");
}
@Override
protected void succeeded(Description description) {
if (description != null) {
builder.append(description);
}
builder.append(" OK\n");
}
};
@Test
public void test() {
Assert.assertEquals("Java class", "Java class");
}
}
为什么要这样做?我知道console会记录所有内容,但我想保存结果以备将来使用。此外,如果关闭日志,您最终会丢失所有与日志文件不同的内容,为什么不使用Log4j或Logback之类的日志框架呢?您可以导出测试报告。所以你以后可以查看测试结果。首先,感谢回复。