Java 如何记录JUnit测试方法的每条语句
默认情况下,jUnit报告只记录测试用例级别的日志:“通过”或“失败”,否则加上stacktrace 我需要的是更深入地记录JUnit@Test方法中的每一行代码。因此,报告有一个一般信息(测试通过或失败)和一个详细信息,其中包括执行的每个步骤以及最终失败的步骤 以下为当前代码结构:Java 如何记录JUnit测试方法的每条语句,java,junit,Java,Junit,默认情况下,jUnit报告只记录测试用例级别的日志:“通过”或“失败”,否则加上stacktrace 我需要的是更深入地记录JUnit@Test方法中的每一行代码。因此,报告有一个一般信息(测试通过或失败)和一个详细信息,其中包括执行的每个步骤以及最终失败的步骤 以下为当前代码结构: public abstract class TestClass{ static Logger logger = log4j.Logger.getLogger(TestClass.class);
public abstract class TestClass{
static Logger logger = log4j.Logger.getLogger(TestClass.class);
@Test
public void testMethod() throws Exception{
driver.findElement(By.id("some_id")).click();
Assert.assertEquals("product edit", driver.getTitle());
}
}
这是不可能的,因为编译后源代码不再可见。您只能在测试方法的每一行之前/之后使用日志指令手动执行此操作,例如:
public abstract class TestClass{
static Logger logger = log4j.Logger.getLogger(TestClass.class);
@Test
public void testMethod() throws Exception{
logger.info("Calling click method on some id...");
driver.findElement(By.id("some_id")).click();
logger.info("Testing driver's title");
Assert.assertEquals("product edit", driver.getTitle());
}
}
您已经知道哪个失败了,因为它在标准JUnit输出中。你也知道以前发生了什么,因为它在你的测试代码中。如果测试用例如此复杂,以至于您觉得需要逐行日志记录,那么您应该考虑重构测试。