Email testNG:在@AfterSuite部分内通过邮件发送报告

Email testNG:在@AfterSuite部分内通过邮件发送报告,email,selenium,report,testng,Email,Selenium,Report,Testng,我想将testNG(java+eclipse+testNG)生成的报告发送到@AfterSuite部分。 发送它不是问题,但关键是报告是在@AfterSuite部分之后生成的,因此,基本上,我发送的是前一个而不是最后一个! 你知道我该怎么解决吗 如您所见,@AfterSuite在生成报告之前运行 你有没有想过要实施一个新的计划 公共类MyReporter实现IReporter{ @凌驾 公共void生成器报告(列表xmlSuites、列表iSuites、字符串s){ //创建定制结果 //电子邮

我想将testNG(java+eclipse+testNG)生成的报告发送到@AfterSuite部分。 发送它不是问题,但关键是报告是在@AfterSuite部分之后生成的,因此,基本上,我发送的是前一个而不是最后一个!
你知道我该怎么解决吗

如您所见,@AfterSuite在生成报告之前运行

你有没有想过要实施一个新的计划

公共类MyReporter实现IReporter{
@凌驾
公共void生成器报告(列表xmlSuites、列表iSuites、字符串s){
//创建定制结果
//电子邮件结果
}
}
显然,您可以看到一个缺陷,即您必须从原始结果数据生成自己的结果(如果您只想通过电子邮件发送数据的子集,这可能是有利的)

理想的解决方案是能够扩展默认的报表生成器,但我不确定这是否可以做到。但是,有一个由提供的现有侦听器,它实际上提供了更好的报告输出

如果您扩展这个类,并调用它们的代码,然后添加电子邮件生成器代码,它可能会工作

public class MyReporter extends HTMLReporter {


        @Override
        public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> iSuites, String s) {
            super.generateReport(xmlSuites, iSuites, s);

            //Email results
        }
    }
公共类MyReporter扩展了HTMLReporter{
@凌驾
公共void生成器报告(列表xmlSuites、列表iSuites、字符串s){
超级生成报告(xmlSuites、iSuites、s);
//电子邮件结果
}
}
您可以通过多种方式将侦听器附加到测试套件,如TEstNG网站()

所有这些的替代方法是使用Maven之类的构建工具运行测试,然后使用测试后事件通过电子邮件发送结果。

我从中复制了答案。
这对我很有用。
顺便说一下,在我的测试环境中,我需要扩展org.testng.reporters.EmailableReporter2而不是EmailableReporter,以确保正确的计数。
请参阅以下内容以供参考:


克里希南·马哈德凡克里希南·马哈德凡2012年7月31日上午8:58我猜你指的是生成的TestNG “emailable report.html”,您希望通过电子邮件发送

有了这个假设,你就应该能够做到这一点

  • 扩展org.testng.reporters.EmailableReporter
  • 覆盖org.testng.reporters.EmailableReporter.generateReport(列表, 列表、字符串)并让其执行以下操作:

    @凌驾 公共void生成器报告(列表xml、列表套件、字符串 outdir){ generateReport(xml、suites、outdir); SendFileEmail e=新的SendFileEmail(); e、 sendmail(); }

  • 现在使用以下命令将您的侦听器添加到套件文件中 标签

    public class MyReporter extends HTMLReporter {
    
    
            @Override
            public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> iSuites, String s) {
                super.generateReport(xmlSuites, iSuites, s);
    
                //Email results
            }
        }