2016-08-04 2 views
0

CucumberJS/각도기를 사용하고 있으며, 스크린 샷 이미지를 base64로 인코딩 한 후 스크린 샷이있는 HTML 보고서를 생성하는 데 성공했습니다. 이것은 로컬 컴퓨터에 있습니다. 그러나 Jenkins는 콘텐츠 보안 설정으로 인해이 이미지를 보고서에 삽입하지 않습니다. 물론 빌드 서버의 보안을 손상시키고 싶지는 않습니다.이 문제를 해결하는 방법이 있습니까? 저장 스크린 샷 코드는 다음과 같습니다. 당신이 content security settings 당신이 당신의 스크립트 콘솔 (젠킨스 관리)에서 그들을 해제 할 수 있습니다 사용하지 않으려면CucumberJS/각도기 빌드 결과 보고서가 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

두 스크립트 -

다음 실행하여 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

그것은 저를 위해 작동하고 어쨌든 최신 cucumberjs를 사용하고 있습니다. 나는 새로운 젠킨스 버전의'content security settings' 문제에 직면했습니다. 제한적인 해결책은 제가 생각할 수있는 유일한 솔루션입니다. 당신이 당신의 로컬 컴퓨터에서 보안에 문제가 없다고 생각하십시오. 내 업데이트 대답을 사용 중지하는 방법을 확인하십시오. –