Java - Logback 以显示测试用例名称
Java - Logback to display testcase name
我在我的 Selenium Webdriver 项目中使用 Logback,但遇到了一些障碍。我在网上搜索过,但没有找到答案。
我正在尝试找到一种方法,使我能够在 setup()
方法中获取测试用例名称 (testGoogleWebsite)。所以不只是打印 "Starting test" 它打印出 "Starting test - testGoogleWebsite"
我知道我可以在每个测试的第一行做 LOG.debug("testGoogleWebsite");
,但想知道是否有更好的方法。
我的测试:
@Test
public void testGoogleWebsite() {
openGoogleWebsite();
searchForWhosebug();
clickOnWhosebugLink();
}
@BeforeTest
public void setup() throws FileNotFoundException {
LOG.debug("Starting test - ");
driver = new ChromeDriver();
}
@AfterTest
public void tearDown(){
LOG.debug("End of test");
}
我的日志文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DEV_HOME" value="target/Logs" />
<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEV_HOME}/debug.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.test" level="debug" additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
<root level="debug">
<appender-ref ref="FILE-AUDIT" />
</root>
</configuration>
我认为您是在谈论记录您的测试名称(因为 testGoogleWebsite 是我看到的测试用例名称)。为此,您可以将 LOG.debug("Starting test - ");
放在 beforeMethod.
中
代码片段
@BeforeMethod
public void beforeMethod(Method method) {
LOG.debug("Starting test - " + method.getName(););
}
这将根据需要记录您的每个测试用例名称。
我在我的 Selenium Webdriver 项目中使用 Logback,但遇到了一些障碍。我在网上搜索过,但没有找到答案。
我正在尝试找到一种方法,使我能够在 setup()
方法中获取测试用例名称 (testGoogleWebsite)。所以不只是打印 "Starting test" 它打印出 "Starting test - testGoogleWebsite"
我知道我可以在每个测试的第一行做 LOG.debug("testGoogleWebsite");
,但想知道是否有更好的方法。
我的测试:
@Test
public void testGoogleWebsite() {
openGoogleWebsite();
searchForWhosebug();
clickOnWhosebugLink();
}
@BeforeTest
public void setup() throws FileNotFoundException {
LOG.debug("Starting test - ");
driver = new ChromeDriver();
}
@AfterTest
public void tearDown(){
LOG.debug("End of test");
}
我的日志文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DEV_HOME" value="target/Logs" />
<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEV_HOME}/debug.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.test" level="debug" additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
<root level="debug">
<appender-ref ref="FILE-AUDIT" />
</root>
</configuration>
我认为您是在谈论记录您的测试名称(因为 testGoogleWebsite 是我看到的测试用例名称)。为此,您可以将 LOG.debug("Starting test - ");
放在 beforeMethod.
代码片段
@BeforeMethod
public void beforeMethod(Method method) {
LOG.debug("Starting test - " + method.getName(););
}
这将根据需要记录您的每个测试用例名称。