0

当前要求是在功能文件的测试执行完成后发送范围报告。

在我的 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();
    }
}

现在,当我多次运行我的顺序运行器文件时,它将始终在我配置的电子邮件上发送范围报告,但如果我将我的功能文件更改为其他文件,它将再次发送以前发送的报告,而不是每次都发送更改后的新报告。

寻找解决方案

  • 需要根据功能文件更改和功能文件执行发送适当的报告。
  • 想要存储功能文件的旧执行报告,并确保它只会在配置的电子邮件上发送最新的执行报告。
  • 如果此报告代码不合适,则建议另一种使用适当代码片段的方式进行实施。
4

0 回答 0