2014-06-13 8 views
1

나는 문제없이 스스로 실행하고 통과시키는 일련의 QUnit 테스트를 가지고있다. 그러나 최근에 Blanket.js를 추가하여 자바 스크립트 코드 범위를 측정하여 테스트에서 갭을 찾는 데 도움이되었습니다. 갑자기 여러 테스트가 실패했습니다. 어떤 일이 일어나고 있는지 알 수 있도록 몇 가지 경고를 뿌려줍니다. 모든 실패한 테스트는 상태 사이를 전환하는 기능에 클릭 이벤트를 사용하는 테스트라는 것을 알게되었습니다. 이 테스트는 두 번 토글되었습니다. 트리거의 이중 활성화를 일으키는 원인이 무엇인지 살펴 봤지만 함수에서 두 번 바운드되지 않으며 헤더에 한 번만 자바 스크립트 파일을 포함합니다.Blanket.js의 적용 범위를 활성화하면 클릭 트리거가 두 번 활성화됩니까?

Firebug Blanket.js에서 내가 테스트 한 스크립트에 GET 요청을합니다. GET 요청이 두 번째로 바인딩 기능이거나이 이중 활성화에 대한 다른 원인이 있습니까?

+0

당신이 테스트 된 당신의 js 파일의 참조의 데이터 덮개 속성을 추가했다을? – jinmichaelr

+0

@jinmichaelr 예, data-cover 속성은 src 속성 바로 뒤에있는 참조에 있습니다. –

+0

필자는 테스트중인 스크립트가 아닌 테스트 스크립트의 참조에 "데이터 커버"를 넣었을 것이라고 생각했습니다. 내가 잘못된 스크립트에서 "데이터 커버"를 잘못 배치 한 다음 BlanketJS가 테스트 스크립트를 두 번 트리거했습니다. – jinmichaelr

답변

1

담요 두건 아래에서 많은 일이 발생합니다. 내가 말할 수있는 것부터, 당신이 말하는 코드를 본질적으로 평가하고있다. 따라서 "실행"되는 항목은 DOM에로드 한 다음 다시 블랭킷으로 평가하면 다시 평가됩니다.

+0

따라서 "Enable Coverage"가 선택되었을 때 실패한 테스트를 무시해도 괜찮습니까? 이것은 반 직관적 인 것처럼 보인다. 나는 정말로 테스트를 통과하면서 항상 적용 범위를 사용하고 싶습니다 ... – theUtherSide

1

때문에 모든 스크립트를 두 번 클릭 이벤트를 바인딩 할 수있는 두 번째로 실행하도록 로드 data-cover-only 다시에서이 페이지의 스크립트 일치하는 패턴이 스크립트의 범위를 analayse하는 것이다 담요.

당신은 크롬 개발 도구의 네트워크 판넬에서 볼 수 있으며, 같은 요청이 표시됩니다 enter image description here

+0

누구나'grunt-blanket'을 사용하여 이것을 해결할 수 있었습니까? 이것은 파일을 먼저 측정 한 다음 계측 된 파일에 대해 테스트를 실행하기 때문에 수정 사항 일 수있는 것처럼 들립니다. 그러나 명령 줄 출력 만있는 것처럼 보입니다. https://github.com/alex-seville/grunt-blanket – theUtherSide