TestNG - 可通过电子邮件发送的报告问题

时间:2015-07-06 03:19:04

标签: email selenium-webdriver testng

我已创建了发送邮件的java方法以及附加TestNG emailable-report的邮件。邮件和报告正在发送到指定的电子邮件地址。

我的问题是,当所有其他测试完成时,我最后调用sendmail方法,但事情是我总是在邮件中获得上一次上一次报告。所有类执行后,它是否像TestNG更新报告?

我希望通过邮件获取最新的易邮件报告,而不是之前的最后一封可通过电子邮件报告。我该怎么做?

2 个答案:

答案 0 :(得分:4)

  

我想通过邮件而不是之前的邮件获取最新的电子邮件报告   最后的emailable报告..我怎么能这样做?

我认为..您正在@aftersuite发送邮件。您之前的测试可通过电子邮件报告,因为测试目前正在运行,并且只有在完成报告时才会生成。

我建议你使用像jenkins这样的持续集成服务器,因为它提供发送电子邮件作为后期构建选项或构建工具,如Maven或ant来运行测试,然后有一个测试后事件通过电子邮件发送结果.Maven也提供了许多插件,以便在测试执行后自动发送邮件,如Postman邮件插件

另一种解决方案:如果您不愿意使用持续集成服务器(jenkins)或maven或ant

TestNG IReporter听众

通过将类实现到IReporter接口来创建自己的CustomReport。此接口只有一种方法可以实现generateReport。此方法具有List中完整测试执行的所有信息,我们可以使用它生成报告。

public class CustomReporter implements IReporter{

        @Override

        public void generateReport(List<XmlSuite> arg0, List<ISuite> arg1,

                String outputDirectory) {

            // Second parameter of this method ISuite will contain all the suite executed.

            for (ISuite iSuite : arg1) {

             //Get a map of result of a single suite at a time

                Map<String,ISuiteResult> results =    iSuite.getResults();

             //Get the key of the result map

                Set<String> keys = results.keySet();

            //Go to each map value one by one

                for (String key : keys) {

                 //The Context object of current result

                ITestContext context = results.get(key).getTestContext();

            //results of all the test case will be stored in the context object

            //Ex: context.getFailedTests(); will give all failed tests and similarly you can get passed and skipped test results make your own html report using the above data 
    }
    }
    }
    }

希望这可以帮助你...如果你需要任何进一步的帮助,请退回

答案 1 :(得分:0)

对于Windows操作系统,我在@AfterSuite中创建了(对于TestNG)最后一个方法,通过两个步骤发送带附件和批处理文件的邮件。首先启动 mvn clean test 以执行所有测试,而不使用以前的结果。第二步启动测试没有参数清理并在非现有组上运行:) 批处理包含在测试文件夹中。

start /wait cmd /k "mvn clean test && exit"  /secondary /minimized
REM to send email with results in file, whitch was composed after test suite (mvn without: clean)
start /wait cmd /k "mvn test -Dgroups=PhantomGroupNonExist && exit" /secondary /minimized