Java 测试和页面类中ITestListener的ExtentTest实例
我正在尝试将ExtentReports与ITestListener一起使用。我面临的问题是无法在测试类中使用ITestListener中的ExtentTest实例进行日志记录。请帮我做这个 下面是listener类Java 测试和页面类中ITestListener的ExtentTest实例,java,testing,selenium-webdriver,automation,testng,Java,Testing,Selenium Webdriver,Automation,Testng,我正在尝试将ExtentReports与ITestListener一起使用。我面临的问题是无法在测试类中使用ITestListener中的ExtentTest实例进行日志记录。请帮我做这个 下面是listener类 package com.dice.listeners; import org.testng.ITestContext; import org.testng.ITestListener; import org.testng.ITestResult; import com.relev
package com.dice.listeners;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
public class ExtentListener implements ITestListener
{
private ExtentReports reports = new ExtentReports("File Location");
private ExtentTest test;
@Override
public void onTestStart(ITestResult arg0)
{
test = reports.startTest(arg0.getMethod().getMethodName());
}
@Override
public void onFinish(ITestContext arg0)
{
reports.endTest(test);
reports.flush();
reports.close();
}
@Override
public void onTestFailure(ITestResult arg0)
{
}
@Override
public void onTestSuccess(ITestResult arg0)
{
}
@Override
public void onTestSkipped(ITestResult arg0)
{
// TODO Auto-generated method stub
}
@Override
public void onStart(ITestContext arg0)
{
// TODO Auto-generated method stub
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0)
{
// TODO Auto-generated method stub
}
}
下面是测试类
package com.dice;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import com.dice.base.BaseTest;
import com.dice.listeners.ExtentListener;
import com.relevantcodes.extentreports.*;
@Listeners(com.dice.listeners.ExtentListener.class)
public class FirstTest extends BaseTest {
@Test
public void firstTestMethod() {
driver.get("http://www.dice.com");
test.log(LogStatus.INFO, "opening dice.com"); /*'test' not same instance as in ExtentListener class*/
}
@Test
public void secondTestMethod() {
driver.get("http://www.linkedin.com");
test.log(LogStatus.INFO, "opening linkedin.com");/*'test' not same instance as in ExtentListener class*/
}
}
在第13行的ExtentListener类中,实例“test”被创建为“private”,这是一个访问修饰符,它将仅限制类本身的可见性。因此,请尝试将访问修饰符更改为public 请根据您的要求使用合适的访问修饰符。
希望这能有所帮助。您是否收到了任何错误报告?它给了我编译错误,因为“test”变量未在FirstTest类中定义。如果我定义它,那么我将如何从ExtentListener类中获取ExtentTest实例?您是否尝试过我建议的答案?如果问题已从答案中解决,请将答案标记为已接受。非常感谢。