2011-05-12 4 views
9

나는 jasmine 테스트를 실행 중입니다.재스민 테스트가 완료되면 감지

jasmine.getEnv().addReporter(new jasmine.TrivialReporter()); 
    jasmine.getEnv().execute(); 

테스트가 완료되면 JavaScript를 사용하여 감지하고 싶습니다. 내가 어떻게 할 수있는?

답변

4

이 문제를 해결하는 두 가지 방법이 있습니다. 하나는 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); 
+0

감사합니다. 스택 추적에서 IntelliJ Idea로 하이퍼 링크를 다시 만드는 테스트 후에 코드를 실행하는 데 사용하고 있습니다. – vaughan

5

일부 다른 방법 :

a)는 onComplete 옵션을 받아들이는 ConsoleRunner 사용. 이전 버전 (1.2rc1)은 완전한 콜백을 독립형 매개 변수로받습니다.

또한 (options.print)을 쓰는 기능을 제공하므로 테스트 보고서를 콘솔에 기록하는 것에 대한 통제권을 가질 수 있습니다.

동시에 여러 기자를 활성화시킬 수 있습니다. jasmineEnv.addReporter().

B)이 시도하지 않은,하지만 당신은 모든 public 메소드의 빈 구현과, 자신의 기자를 생성 할 수도 있지만 jasmineDone()

저자가 저장하고 jasmine.getEnv().currentRunner().finishCallback을 무시 C) 확인 오래된 post in the Jasmine google group, :

+1

맞춤형 기자 추가하기! –

1

저는 HtmlReporter로 Jasmine 1.3.1을 실행하고 있습니다. 나는 이런 식으로 연결했다.

var orig_done = jasmineEnv.currentRunner_.finishCallback; 
jasmineEnv.currentRunner_.finishCallback = function() { 
    orig_done.call(this); 
    // custom code here 
}; 
4

@Xv. 기자를 추가하면 효과가 있음을 시사합니다. 다음과 같이 간단한 작업을 수행 할 수 있습니다.

jasmine.getEnv().addReporter({ 
    jasmineDone: function() { 
     // the specs have finished! 
    } 
}); 

http://jasmine.github.io/2.2/custom_reporter.html을 참조하십시오.

관련 문제