很久以前好不容易在 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
沒有留言:
張貼留言