나는 jasmine 테스트를 실행 중입니다.재스민 테스트가 완료되면 감지
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().execute();
테스트가 완료되면 JavaScript를 사용하여 감지하고 싶습니다. 내가 어떻게 할 수있는?
나는 jasmine 테스트를 실행 중입니다.재스민 테스트가 완료되면 감지
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().execute();
테스트가 완료되면 JavaScript를 사용하여 감지하고 싶습니다. 내가 어떻게 할 수있는?
이 문제를 해결하는 두 가지 방법이 있습니다. 하나는 jasmine을 해킹하여 완료 될 때 맞춤 이벤트를 발생시키는 것입니다.
$('body').bind("jasmine:complete", function(e) { ... }
: 테스트가로드 된 후 내가 스크랩 화면 싶었 기 때문에, 나는 그 다음이 이벤트를 수신의 문제이다 "reportRunnerResults"
$('body').trigger("jasmine:complete");
의 말에 자스민 - html.js에 이벤트 트리거를 삽입
$(window.parent).find('body').trigger("jasmine:complete");
는 또한 possibl입니다 : 내 경우
, 나는 iframe에 재스민을 실행하고 부모 창에 결과를 전달하고 싶었다, 그래서 난 내 첫 바인드에서 부모의 이벤트를 트리거 한 jquery없이이 작업을 수행 할 수 있습니다. 내 전략은 "finished-at"스팬에 추가 할 텍스트를 폴링하는 것이 었습니다. 이 예제에서는 매 5 초마다 8 초 간 폴링합니다.
var counter = 0;
function checkdone() {
if ($('#test-frame').contents().find('span.finished-at').text().length > 0) {
...
clearInterval(timer);
} else {
counter += 500;
if (counter > 8000) {
...
clearInterval(timer);
}
}
}
var timer = setInterval("checkdone()", 500);
일부 다른 방법 :
a)는 onComplete
옵션을 받아들이는 ConsoleRunner
사용. 이전 버전 (1.2rc1)은 완전한 콜백을 독립형 매개 변수로받습니다.
또한 (options.print
)을 쓰는 기능을 제공하므로 테스트 보고서를 콘솔에 기록하는 것에 대한 통제권을 가질 수 있습니다.
동시에 여러 기자를 활성화시킬 수 있습니다. jasmineEnv.addReporter()
.
B)이 시도하지 않은,하지만 당신은 모든 public 메소드의 빈 구현과, 자신의 기자를 생성 할 수도 있지만 jasmineDone()
저자가 저장하고 jasmine.getEnv().currentRunner().finishCallback
을 무시 C) 확인 오래된 post in the Jasmine google group, :
맞춤형 기자 추가하기! –
저는 HtmlReporter로 Jasmine 1.3.1을 실행하고 있습니다. 나는 이런 식으로 연결했다.
var orig_done = jasmineEnv.currentRunner_.finishCallback;
jasmineEnv.currentRunner_.finishCallback = function() {
orig_done.call(this);
// custom code here
};
@Xv. 기자를 추가하면 효과가 있음을 시사합니다. 다음과 같이 간단한 작업을 수행 할 수 있습니다.
jasmine.getEnv().addReporter({
jasmineDone: function() {
// the specs have finished!
}
});
감사합니다. 스택 추적에서 IntelliJ Idea로 하이퍼 링크를 다시 만드는 테스트 후에 코드를 실행하는 데 사용하고 있습니다. – vaughan