BaseTest.java:
private static ReportService reportService; // Calling report service interface
@BeforeSuite:
reportService = new ExtentReportService(getConfig()); // New instance of ExtentReportService.
@BeforeMethod:
reportService.startTest(testname); // Starting the test and passing the name and description of the test.
@AfterMethod:
reportService.endTest(); // Ending the test
@AfterSuite:
reportService.close(); // Closing the test
**ExtentReportService.java:** // Contains different extent API methods. (These are designed to be generic.)
protected static ExtentReports extent; // static instance of ExtentReports
protected static ExtentTest test; //static instance of ExtentTTest
@Override // StartTest method
startTest(Method method) {
testMetaData = getTestMetaData(method);
test=extent.startTest(testMetaData.getId(),testMetaData.getSummary());
}
@Override //End test method
endTest() {
extent.endTest(test);
extent.flush();
}
- 以上是我的硒代码。
- 当我使用parallel="methods" 和thread count="3" 执行我的套件文件时,我收到以下错误:“com.relevantcodes.extentreports.ExtentTestInterruptedException: Close was called before test can be used to secure endTest.”。
- 在调试时,我发现即使在 AfterMehtod 中的所有 endTest() 被执行之前,AfterSuite 就被调用了。
- 我尝试了不同的变体以使代码正常工作,例如,删除静态,在测试本身而不是 after 方法中调用 endTest(),从 AfterSuite 中删除 close() 调用以及许多其他变体。但仍然得到同样的错误。
我尝试了互联网上提供的所有可能的解决方案,但没有用。