您好我正试图通过范围报告创建报告;代码没有错误并且运行成功,但没有生成html报告。以下任何人都可以帮助我的代码 -
package ca.automation.com;
import org.testng.annotations.Test;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import org.testng.annotations.BeforeTest;
import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.AfterClass;
public class ExtentReport {
WebDriver driver;
ExtentReports extent;
ExtentTest test;
@BeforeTest
public void startReport(){
extent = new ExtentReports("C:\\Report.html", true);
}
@Test
public void installapp() {
test = extent.startTest("installapp");
System.setProperty("webdriver.ie.driver", "C:\\Anuj\\Downloads\\IEDriverServer_Win32_2.46.0\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get("https://www.tripadvisor.com/");
String Title = driver.getTitle();
Assert.assertTrue(Title.contains("Trip"));
extent.endTest(test);
}
}
答案 0 :(得分:4)
在测试方法的末尾附加extent.flush();
,将所有测试日志写入报告文件。
答案 1 :(得分:3)
查看文档:{{3}}`
我认为最后会遗漏extent.flush();
。
答案 2 :(得分:2)
需要调用flush()和close()以使extent对象将更改写入文件。调用close()必须在Test结束之前完成,因为它会关闭输出流
在@AfterMethod方法中调用flush(),在@AfterSuite方法中调用close()
@AfterMethod
public void afterMethod() {
extent.flush();
}
@AfterSuite
public void afterSuiteMethod() {
extent.close();
}
参考文献: - ExtentReports Examples for Java
答案 3 :(得分:1)
在这里,只需复制粘贴项目中的工作代码即可。
import org.testng.annotations.Test;
import com.dell.patientregister.mobilewallet.test.PatientRegister_SmokeTest;
import com.relevantcodes.extentreports.ExtentReports;
import org.testng.annotations.BeforeTest;
import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class ExtentReport {
WebDriver driver;
ExtentReports extent;
@Test
public void installapp() {
ExtentReports extent = ExtentReports.get(ExtentReport.class);
extent.init("myreport.html", true);
extent.startTest(" Install App");
System.setProperty("webdriver.ie.driver", "C:\\Anuj\\Downloads\\IEDriverServer_Win32_2.46.0\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get("https://www.tripadvisor.com/");
String Title = driver.getTitle();
Assert.assertTrue(Title.contains("Trip"));
extent.endTest();
}
}
答案 4 :(得分:1)
请试试这个:
import org.testng.annotations.Test;
import com.dell.patientregister.mobilewallet.test.PatientRegister_SmokeTest;
import com.relevantcodes.extentreports.ExtentReports;
import org.testng.annotations.BeforeTest;
import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class ExtentReport {
WebDriver driver;
ExtentReports extent;
@Test
public void installapp() {
ExtentReports extent = ExtentReports.get(ExtentReport.class);
extent.init("myreport.html", true);
test = extent.startTest(" Install App");
System.setProperty("webdriver.ie.driver","C:\\Anuj\\Downloads\\IEDriverServer_Win32_2.46.0\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get("https://www.tripadvisor.com/");
String Title = driver.getTitle();
Assert.assertTrue(Title.contains("Trip"));
test.Log(LogStatus.Pass, "Login Successful");
extent.endTest(test);
extent.flush();
extent.close();
}
}
答案 5 :(得分:1)
最后添加extent.flush()
。
答案 6 :(得分:1)
请检查是否已执行所有配置。您的@ BeforeClass,@ AfterClass等... 有时它们会被跳过,因此不会生成tent.html。
因此,添加以下带有testng注释的标签“ alwaysRun = true” 例如@AfterMethod(alwaysRun = true)
它有效:)
答案 7 :(得分:1)
即使在代码中添加了extent.flush(),我在testng项目中也遇到了此错误。不产生错误的原因是在执行期间,由于断言之一失败,未执行exent.flush()行。删除该断言脚本后,它可以正常工作,并且照常生成了文件。
答案 8 :(得分:0)
我在生成Extent报告时遇到了同样的问题。以下解决方案对我有用。 请在最后添加这些命令: extent.EndTest(测试); extent.Flush();
确保从NuGet Packages - ExtentReports 2.41.0
添加此版本答案 9 :(得分:0)
如果在添加extent.flush()之后它仍然无效,请尝试在pom.xml中添加以下依赖项
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.8.11.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.0.4</version>
</dependency>
答案 10 :(得分:0)
在测试中,您没有在报告中记录任何内容。如果未记录任何内容,则不会生成报告。如下所示,尝试在报告中记录一些内容。另外,根据断言状态,您可以将PASS
/ FAIL
记录在扩展报告中
test.log(LogStatus.INFO, "Test Started");
test.log(LogStatus.ERROR, "Test FAILED");
答案 11 :(得分:-2)
添加 bson-xxx.jar 解决了我同样的问题。可以试试。