当前要求是在功能文件的测试执行完成后发送范围报告。
在我的 SequentialRunnerTest 类中,我编写了以下逻辑来发送测试执行报告的电子邮件。
@CucumberOptions(
features = {
"src/test/resources/featureFiles/Login/Login.feature",
"src/test/resources/featureFiles/UserManager/UserManager.feature"
},
tags = "@smoke and @RegressionTest",
glue = { "com.vday.StepDefinition" },
plugin = {"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"},
dryRun = false
)
public class SequentialRunnerTest extends AbstractTestNGCucumberTests{
TestNGCucumberRunner testngcucumber = new TestNGCucumberRunner(this.getClass());
@AfterClass
public static void SendEmail() throws EmailException {
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(System.getProperty("user.dir")+"/test-output/SparkReport/Index.html");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Test Execution Report");
attachment.setName("Automation Test Execution Report.html");
// Create the attachment
EmailAttachment attachment2 = new EmailAttachment();
attachment2.setPath(System.getProperty("user.dir")+"/test output/PdfReport/ExtentPdf.pdf");
attachment2.setDisposition(EmailAttachment.ATTACHMENT);
attachment2.setDescription("Test Execution Report");
attachment2.setName("Automation Test Execution Report.pdf");
// Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.gmail.com");
email.setSSLOnConnect(true);
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("dhrumil@xyz.com", "xxxxx"));
email.addTo("dhrumil@xyz.com", "Dhrumil Soni");
email.setFrom("dhrumil@xyz.com", "Me");
email.setSubject("Automation Test Execution Report");
email.setMsg("Automation Test Execution Report of tenant: "+CONFIG.getProperty("application.url"));
// add the attachment
email.attach(attachment);
email.attach(attachment2);
// send the email
email.send();
}
}
现在,当我多次运行我的顺序运行器文件时,它将始终在我配置的电子邮件上发送范围报告,但如果我将我的功能文件更改为其他文件,它将再次发送以前发送的报告,而不是每次都发送更改后的新报告。
寻找解决方案:
- 需要根据功能文件更改和功能文件执行发送适当的报告。
- 想要存储功能文件的旧执行报告,并确保它只会在配置的电子邮件上发送最新的执行报告。
- 如果此报告代码不合适,则建议另一种使用适当代码片段的方式进行实施。