我在 Selenium Webdriver 项目中使用 Logback,但遇到了一些障碍。我在网上搜索过但没有找到答案。
我正在尝试找到一种方法,允许我在 setup()
方法中获取测试用例名称 (testGoogleWebsite)。因此,它不是只打印“开始测试”,而是打印出“开始测试 - testGoogleWebsite”
我知道我可以在每个测试的第一行执行LOG.debug("testGoogleWebsite");
,但想知道是否有更好的方法。
我的测试:
@Test
public void testGoogleWebsite() {
openGoogleWebsite();
searchForStackOverflow();
clickOnStackOverflowLink();
}
@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(););
}
这将根据您的需要记录您的每个测试用例名称。
关于Java - Logback显示测试用例名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40512615/