2016-11-09 6 views
0

Я использую Logback в проекте Selenium Webdriver, и я пытаюсь найти способ зарегистрировать статус (прошел тест или прошел тест) в конце теста, поэтому, просматривая журналы, вы знаете, какой тест не прошел.Java - логин для отображения статуса запуска (прошел/не удалось)

У меня есть afterMethod, где я в настоящее время войти «testGoogleWebsite закончил», но хотят получить «testGoogleWebsite не удалось» или «testGoogleWebsite прошел».

Мой Тест:

@Test 
public void testGoogleWebsite() { 
    openGoogleWebsite(); 
    searchForStackOverflow(); 
    clickOnStackOverflowLink(); 
} 


@AfterMethod 
public void afterMethod(Method method){ 
    LOG.debug(method.getName() + " has finished"); 
} 

Мой Logback файл:

<?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> 
+0

Таким образом, вы используете TestNG, верно? Потому что это должен быть наиболее подходящий тег для вашего вопроса. –

ответ

1
@AfterMethod 
public void afterMethod(ITestResult result) 
{ 

    String tcName = result.getName(); 
    if(result.getStatus() == ITestResult.SUCCESS) 
    { 

     //Do something here 
     LOG.debug(tcName + " has passed"); 
    } 

    else if(result.getStatus() == ITestResult.FAILURE) 
    { 
     //Do something here 
     LOG.debug(tcName + " has failed"); 

    } 

    else if(result.getStatus() == ITestResult.SKIP){ 

     LOG.debug(tcName + " has skipped"); 
    } 
} 
0

Потому что я видел @AfterMethod, я полагаю, что вы используете TestNG.

Затем, вы можете попробовать:

@AfterMethod 
public void tearDown(ITestResult result) { 
    String methodName = result.getMethod().getMethodName(); 
    if (result.getStatus() == ITestResult.FAILURE) { 
     LOG.debug(methodName + " has failed"); 
    } else if (result.getStatus() == ITestResult.SUCCESS) { 
     LOG.debug(methodName + " has passed"); 
    }  
}