使用Testng和logj4运行appium测试,获取错误实例化类org.apache.logging.log4j.spi.Provider

时间:2017-10-01 23:30:30

标签: log4j testng appium

我正在尝试使用java,testng和log4j在真正的ios设备上运行appium测试。我对log4j不太熟悉。我在eclipse中收到以下错误。

org.testng.TestNGException: 实例化类MobileTests.AppiumIOSTestAppTest1时发生错误:org.apache.logging.log4j.spi.Provider:找不到提供程序org.apache.logging.slf4j.SLF4JProvider

 package MobileTests;

 import java.io.IOException;
 import java.sql.Timestamp;
 import java.util.Date;
 import org.testng.Assert;
 import org.testng.ITestResult;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
 import org.testng.asserts.SoftAssert;
 import org.apache.log4j.Logger;
 import Base.TestBase;
 import Common.ScreenshotURL;
 import Locators.LocatorMethods;

public class AppiumIOSTestAppTest1 extends TestBase{

static SoftAssert softAssert = new SoftAssert();
static Logger log = Logger.getLogger(AppiumIOSTestAppTest1.class);

String className = this.getClass().getSimpleName();
Date date1= new Date();
String originaltimestamp = new Timestamp(date1.getTime()).toString();
String timestamp = originaltimestamp.replace(':', 'x').substring(11);
String foldername = folderpath+className+timestamp;
String error = "";
String errorname = "";

@Test
public void iosTestAppTest1 () throws IOException, InterruptedException
{

    try
    {
        LocatorMethods.clickByXpath(driver, "textfield1.xpath");
        LocatorMethods.sendKeysIntoElementByXpath(driver, "textfield1.xpath", Integer.toString(8));
        LocatorMethods.clickByXpath(driver, "textfield2.xpath");
        LocatorMethods.sendKeysIntoElementByXpath(driver, "textfield2.xpath", Integer.toString(9));
        LocatorMethods.clickByXpath(driver, "compute.xpath");
        String answer = LocatorMethods.getTextByXpath(driver, "answer.xpath");


        try
        {
            Assert.assertTrue(answer.equalsIgnoreCase(Integer.toString(17)), "Answer is wrong.");
        }
        catch(AssertionError e)
        { 
            log.debug("Wrong answer was calculated.");
            log.error("This is an exception", e);
            //error = e.toString();
            //System.out.println(error);
            errorname = "wronganswer";
            ScreenshotURL.screenshotURL(driver, foldername, errorname, error);
            softAssert.fail();

        }

    }
    catch(AssertionError e)
    { 

        System.out.println(e);
    }





            softAssert.assertAll();

}


@AfterMethod 
public static void OnFailure(ITestResult testResult) throws IOException { 
    if (testResult.getStatus() == ITestResult.FAILURE) 
    { 
        System.out.println(testResult.getStatus()); 
    } 
} 

}

0 个答案:

没有答案