带有log4j的TestNG @DataProvider

时间:2017-12-21 17:27:53

标签: selenium-webdriver log4j testng-dataprovider

当我使用log4j和TestNG @DataProvider时,我能够为下面的代码生成日志,但是当我使用@DataProvider时,日志会被覆盖。我尝试使用@BeforeTest,但它不起作用。关于如何为我的所有行生成日志的任何想法?

public class DemoTest extends baseFX {
    public static Logger Log = LogManager.getLogger(baseFX.class.getName());

    @Test(dataProvider="DataProvider", groups = { "baseFX" })
    public void loginPageNav(String Test, String newMemEmail, String newMemPass ) throws Exception {
        driver=driverSetup();
        Log.info("Driver is initialized");

        //Creating object for the Index to the class
        IndexPage indexpage = new IndexPage(driver);
        Log.info("Navigated to Index Page");
        //invoke method
        indexpage.clickLogin().click();
        Log.info("Clicked on Login");

        //Creating an object for the login page and invoke its elements
        LoginPage loginpage = new LoginPage(driver);
        loginpage.getPassword().sendKeys(password);
        loginpage.loginBtn().click();

        Log.info("Member successfully logged in");
        //driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
        driver.close();
    }

    @DataProvider
    public Object[][] DataProvider() throws Exception{
        Object[][] arrayObject = ReadExcelData.getExcelData("./src/test/java/Autopkg/TestData/Demo.xlsx", "Sheet1");
        return arrayObject;
    }


    //@AfterTest
    //public void tearDown(){
    //}
}

我使用log4j配置文件:

        <?xml version="1.0" encoding="UTF-8"?>
         <Configuration status="WARN">
   <Properties>
        <Property name="basePath">./logs</Property>
        </Properties>

          <Appenders>
              <RollingFile name="File" fileName="${basePath}/prints.log" filePattern="${basePath}/prints-%d{yyyy-MM-dd}.log">


             <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
              <SizeBasedTriggeringPolicy size="1000" />
                  </RollingFile>
            <Console name="Console" target="SYSTEM_OUT">
              <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            </Console>
          </Appenders>
          <Loggers>
            <Root level="trace">
              <AppenderRef ref="File"/>
            </Root>
          </Loggers>
        </Configuration>

0 个答案:

没有答案