java - 如何将 JUnit 测试结果记录到文件中?

标签 java junit

我以前从未使用过日志记录机制,但现在我需要将 JUnit 测试的结果记录到文件中。

我想将以下测试的结果(无论是通过、失败还是抛出异常)记录到日志文件中。

@Test
public void statusCode200() {
    Assert.assertEquals("Java class".getStatusCode(), 200);
}

有人可以建议如何实现这一目标吗?

<小时/>

来自评论:

我目前正在使用此日志记录机制: – gin​​ny singh 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();

最佳答案

您可以使用TestWatcher来自 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");
    }
}

关于java - 如何将 JUnit 测试结果记录到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870799/

相关文章:

java - 打开文件并将其内容设置为 JavaFX NullPointer 中的 TextArea

java - 在 Java 中删除 json 中的节点

java - 在编写 JUnit 案例时需要帮助

java - 无法捕获 junit 中的算术异常

java - 有界通配符相关的编译器错误

java - 无法使用 Jacoco 执行 Maven 目标

java - testException = [null] 与 Hibernate 和 SpringMVC

java - 使用 junitparams @FileParameter 在 Java : Combine 'custom test name' feature (@Parameters(name ="namestring")) in jUnit 4. 11 中进行参数化 jUnit 测试?

java - 使用 Junit 运行 selenium 测试时出现空指针异常

java - HttpURLConnection 读取响应内容时出现 403 错误