我有以下报告代码:
public class Reporting {
private ExtentHtmlReporter extentHtmlReporter;
private static ThreadLocal<ExtentReports> extentReports = new ThreadLocal<>();
private static ThreadLocal<ExtentTest> extentTest = new ThreadLocal<>();
public synchronized ExtentTest createInstanceReport(String testCaseName) {
System.out.println(extentReports.get());
new File(Constants.userDir + "/Reports/").mkdirs();
// To generate report with name
extentHtmlReporter = new ExtentHtmlReporter(
Constants.userDir + "/Reports/" +
"ExecutionReport_" + new SimpleDateFormat(
Constants.date).format(new Date()) + ".html");
// Setting Document Title
extentHtmlReporter.config().setDocumentTitle("Demo");
// Setting Report Name
extentHtmlReporter.config().setReportName("Demo Automation");
// Setting Theme
extentHtmlReporter.config().setTheme(Theme.STANDARD);
// Setting Chart location
extentHtmlReporter.config().setTestViewChartLocation(ChartLocation.TOP);
// Setting Chart visibility
extentHtmlReporter.config().setChartVisibilityOnOpen(false);
// Setting Time stamp
我正在尝试使用 TestNG 进行并行测试(并且将来必须使用 Selenium 网格和酱汁)。我执行了 2 个测试用例,然后在报告中只添加了一个测试用例结果。
我已经使用 threadPool隔离了extentTest,extentReporter和WebDriver实例。
下面用extentHtmlReporter实例试过:
1) Tried to make it static(no luck)
2) Tried to make it local (the same behaviour, getting only 1 test case result)
3) Tried as a non-static global variable ( no luck)
你能建议如何解决上述问题吗?
请注意:仅生成一份报告。但是当我尝试在调试模式下运行并行测试用例时,会为这两个测试用例生成报告。我认为是因为一个测试用例克服了它杀死某个实例的问题(在非调试模式下运行时)
另外,我想在我的代码中重新设计以下位置:
对于extentRpeort,我正在使用:
Reporting.extentReports.set(extentReports);
将extentReport实例添加到我的extentReport线程。
而不是像这样添加我想直接使用它以减少代码行。
慕码人8056858
婷婷同学_
呼如林
相关分类