2016-12-29 1 views
1

그래서 본질적으로 각도기/재스민 E2E 테스트 용 HTML 보고서에 사용했던보고 도구를 다시 작성해야했습니다. 지금은 하나의 테스트 파일에 대한 모든 테스트 결과 (예 : test1.spec.js)를 파일에 멋지게 쓸 수 있습니다.분도기/재스민이 완료되면 어떻게 알 수 있습니까? (보고 도구 논리)

내 문제는 한 번에 둘 이상의 파일을 실행할 때 발생합니다 (예 : [ './test1.spec.js', './test2.spec.js']). 이상적으로 내가하고 싶은 것은 두 테스트의 모든 정보를 a fileData 객체/변수로 저장 한 다음 모든 테스트 파일이 완료되면 해당 변수를 파일에 기록하는 것입니다.

jasmineDone 함수를 작성하려고 시도했지만 각 테스트 파일이 완료된 후에 발생하므로 보고서의 정보를 중복하거나 보고서의 스타일을 덮어 쓰거나 겹쳐서 표시합니다.

this.jasmineDone = function() { 
    fileData += styles.closeReportTags; 
    fileData += styles.closeBodyHtmlTag; 
    fs.appendFileSync("C:/Reports/testing1.html", fileData); 
} 

나는 또한 afterLaunch 방법과 같은 내 각도기 설정 파일에 정의 및보고 도구 파일에서 사용 만들었습니다

this.afterLaunch = function (callback) { 
    fs.writeFile("C:/Reports/testing1.html", fileData); 
} 

을에서 나는에 모든 테스트 결과를 추가하려고 위 각 실행을 통해 fileData 변수를 작성한 다음 완료된 후에 모두 다시 작성하지만 fileData는 afterLaunch 메소드로 올바르게 전달되지 않습니다 (파일에 아무 것도 쓰지 않고 빈 html 파일 만 작성합니다).

내 질문은 실제 테스트 실행 시간을 알아 내기 위해 각도기/재스민에 대해 대기중인 테스트 파일이 더 많은지를 판단 할 수 있도록 실행 횟수 또는 플래그를 어떤 방식으로 유지할 수 있습니까? 완성 된 범위 내에서 그 파일을 쓸 수 있습니다.

감사합니다.

답변

1

나는 동일한 문제가있었습니다. 궁극적으로 Jasmine/Protractor에서 사용할 수있는 모든 후크가 충분하지 않았습니다 (특히 샤딩 테스트의 경우). 결국 나를 위해 일하는 것은 내 자신의 cli를 만들고, 내가 원하는 결과를 파싱/저장하고, 다음보고를하는 것이 었습니다.

#!/usr/bin/env node 

var spawn = require('child_process').spawn; 
var output = []; 

// get protractor args from cli, and skip first two (node and self) 
var args = process.argv.slice(2); 
// run protractor 
protractor = spawn('node_modules/.bin/protractor', args); 

/** 
* process listeners 
*/ 
protractor.stdout.on('data', function(buffer) { 
    var text = buffer.toString(); 
    // parse results here... 
    console.log(text); 
}); 

protractor.stderr.on('data', function(buffer) { 
    var text = buffer.toString(); 
    console.log(text); 
}); 

protractor.on('exit', function(status) { 
    // protractor is _done_ done, report your results here... 
}); 

을 실행할 수 있도록 파일을 chmod를해야합니다 (예 : chmod 755합니다.) :

여기 예제 CLI입니다.

./myCI conf.js --baseUrl http://example.com

+0

실제로 그 무언가를 생각 내 현재의 솔루션을했다,하지만 난 여전히 당신의 방법을 찾고 계획 : 그런 다음 thusly 히 실행! 응답을 감사하십시오. 이것은 엄청난 두통이었습니다. –

+0

걱정할 필요가 없습니다. 그래, 이건 고통이야. – Brine

관련 문제