2016-11-23 137 views
0

的信函工作共享格式的报告 - 目前,我们正在使用testng通过电子邮件发送的格式和allure来产生我们目前的测试执行格式化的报告。这些与我们当地的工作正常。该/target/report结构可以在图像中可以看出,以描绘2个不同的文件夹的诱惑力(/部位)和TestNG的(/万无一失)分别报告: enter image description here了在詹金斯


试图 - 虽然我们试图使用Jenkins使用与我们本地相同的步骤来实施配置项,测试执行得很好,并且也生成了相应的报告。

使用TestNG插件 并指定模式**/target/surefire-reports/testng-results.xml可以很好地显示testNG结果图。

而且使用Email ext插件我可以附加的.html报告发送给收件人指定的附件栏的详细信息作为邮件: **/target/surefire-reports/emailable-report.html, **/target/surefire-reports/index.html


什么行不通 - 我们最终收到带有HTML报告的电子邮件,但这些邮件没有格式化,可能是因为所有链接到这些CSS的CSS都被遗忘了。有没有办法解决这个问题?


注 -尝试了这些:

  1. 附加所有的.css文件与附件.html文件,但是,一个是强力沿和第二还不行工作。

  2. 一种方式也就是scp报告(/目标)目录,从詹金斯实例另一台主机和共享的那台机器在电子邮件通知上的报告路径,并获得格式化报告共享。但是,这需要额外的资源和依赖,我们希望避免。

  3. 在发布此消息时,我看到一个HTML publisher插件似乎在做类似的事情。尝试安装并使用它。但我假设,因为我们使用的是Jenkins 2.6插件注曰

在1.625.3和1.641版本开始,詹金斯限制什么样的内容 可以提供静态文件时显示。这可以影响HTML文件如何使用此插件存档的显示方式 。有关更多信息,请参阅 配置内容安全策略。

我们没有在后期构建操作中获得Publish HTML Reports的选项。


任何建议都非常欢迎,请不要问任何更多的信息需要此。

编辑:将上面的注意事项2,在我们的安装中使用的詹金斯实例是泊坞窗奴隶,显然使得报告或目标产生的不是持久的。

+0

如果你想在CSP问题,你将不得不重新启动与特定的设置詹金斯。您只需在电子邮件中指定一个链接,然后在存档文件夹中指定一个链接 - 就像点击一样 - 只是解决问题的快速方法,如果报告仅适用于开发人员。 –

+0

@niharika_neo请你详细说明上述意图。 – nullpointer

+0

我建议你建立一个链接到你的index.html(希望存档),比如说jenkins/yourjob/buildnumber/archives/index.html,并且在电子邮件的内容中找到它。您的电子邮件会附带电子邮件报告附有摘要,有关更多详细信息,请参阅此链接。在我以前的版本中,我甚至解析了控制台日志以获取电子邮件本身中的数据摘要。 x通过,失败。有关详细报告,请点击此处。 - 希望澄清。用另一种方式解决问题。 –

回答

1

以下是您可以考虑的操作。

选项1

  1. 其中创建基本上拉上所有你想要并将其发送的电子邮件报告中的逻辑建立IExecutionListener的实现。
  2. 电线在这个听众,应该照顾。

PS:IExecutionListener的当前实现在报告生成阶段之前被调用。我已经将此作为this提交的一部分进行了更改。所以,如果你想用这种方式继续下去,那么你可能要等到TestNG的出去与新版本

选项(应该在一两天的发生)2

  • 构建包装记者(其实施IReporter)和电线只有本报记者。
  • 在本报告中,您明确实例化了您希望在报告阶段被召唤的所有记者。请参阅下面的可能样本。
public class ChainedReporter implements IReporter { 

    private List<IReporter> reporters = new ArrayList<>; 

    public ChainedReporter() { 
     reporters.add(new FooReporter());//Here FooReporter is a custom reporter. Replace it with yours. 
     reporters.add(new BarReporter());//Here BarReporter is a custom reporter. Replace it with yours. 
    } 
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) { 
     for (IReporter reporter : reporters) { 
      reporter.generateReport(xmlSuites, suites, outputDirectory); 
     } 
     //By now we have ensured that all the reporting logic has been triggered and we have reports generated. 
     zipReports(); // This method would take care of creating zipped files of all the reports. 
     emailReports(); // This emthod would take care of emailing the actual reports. 

    } 
} 
+0

这可能会迟到,但是已经发布了更改?同样,虽然我可以看到使代码最终更改可能会解决此问题。但我热衷于在Jenkins(插件/脚本)中找到一个选项来共享现有的生成报告。 – nullpointer

+0

@nullpointer - 是的变化已经发布。 –