星期五, 9月 30, 2016

Jenkins Cobertura Report Missing?

很久以前好不容易在 Jenkins 弄出來的 Cobertura 測試涵蓋度報表,最近再看竟然只剩頁框了?原來是因為 Content Security Policy 的緣故,要在啟動時加一個參數來避免:
  • java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
如果光講這個方法就不好玩了,另一個有趣的是「Manage Jenkins -> Script Console」,這裡的指令即下即行。因為測試涵蓋度報表結構上與 Java Doc 類似,所以這樣的命令也能讓報表重現:
  • System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; default-src 'none'; img-src 'self'; style-src 'self';") // default
  • System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'none'; img-src 'self'; style-src 'self'; child-src 'self'; frame-src 'self';") // for JavaDoc, may be working or not
  • System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") // work if no cache
  • System.getProperty("hudson.model.DirectoryBrowserSupport.CSP") // check

沒有留言:

張貼留言