2016-08-04 6 views
0

CucumberJS/Protractorを使用していて、失敗した場合(スクリーンショットイメージをbase64にエンコードした後)のスクリーンショットを含むHTMLレポートを生成できます。これはローカルマシン上にあります。しかし、Jenkinsは、Content Securityの設定のためにこのイメージをレポートに挿入しません。もちろん、私はビルドサーバーのセキュリティを妥協したくありませんが、この問題を回避する方法はありますか?保存スクリーンショットコードは以下の通りです。CucumberJS/Protractorビルド結果レポートがJenkinsで実行されたときにスクリーンショットが表示されない

if (scenario.isFailed()) { 
    browser.takeScreenshot().then(function (png) { 
    var decodedImage = new Buffer(png.replace(/^data:image\/(png|gif|jpeg);base64,/,''), 'base64'); 
    scenario.attach(decodedImage, 'image/png'); 
    }); 
    } 

答えて

1

次の2つのscripts-

次実行することにより、(ジェンキンスを管理する)あなたは content security settingsを無効にしたい場合は、あなたの スクリプトコンソールでそれらを無効にすることができますthis-

if (scenario.isFailed()) { 
    browser.takeScreenshot().then(function (base64png) { 
    var decodedImage = new Buffer(base64png, 'base64').toString('binary') 
    scenario.attach(decodedImage, 'image/png'); 
    }); 
    } 

ような何かを試みることができます

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';") 

System.setProperty("jenkins.model.DirectoryBrowserSupport.CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';”) 
+0

スクリーンショットを生成することは問題ありません。実際に投稿したコードは現在のCucumberJSバージョンでは機能しません。結果として画像が壊れます。この問題は具体的には、Jenkinsのビルドサーバー上のレポートへのイメージの挿入に関連しています。私がローカルで走ったときにうまくいくもの。 Jenkinsが報告している問題は、コンテンツをHTMLに挿入するということです。私はスクリーンショットを生成する方法ではなく、これに対処するためのオプションを求めていました。 – jaffamoney

+0

それは私にとってはうまくいって、私は最新のキュウリを使用しています。私は、私が考えることができる制限のソリューションを入れている新しいジェンキンのバージョンで 'コンテンツセキュリティの設定 'の問題に直面していても、それはセキュリティの問題を引き起こさないと思う。それを無効にする方法について私の更新の答えをチェックしてください。 –

関連する問題