2016-11-23 140 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 - 是的變化已經發布。 –