2012-08-28 6 views
5

현재 서버 측에서 Sinatra Ruby를 사용하고 클라이언트 측에서 Backbone.js, jQuery, jQuery UI를 사용하여 한 페이지짜리 자바 스크립트 응용 프로그램을 개발 중입니다. 응용 프로그램의 주된 목적은 고객이 다른 종류의 항목을 보거나 편집 할 수있게하는 것입니다. 각 항목보기는 다소 복잡한 형식입니다.한 페이지에 대한 자바 스크립트 통합 테스트

  • 단일 테스트 QUnit에게
  • 기능/통합 테스트 프레임 워크/도구를 사용하면에서 통합 테스트를 위해 추천하는 일

를 사용하여 :

확실히 모든 것을 잘 나는 할 계획입니다 작동하는지 확인하려면 이 경우 ? 나는 Selenium으로 시작했으나 너무 좋아하지 않았다. 나는 PhantomJS와 CasperJS를보기 시작했고, 링크를 탐색하고, 클릭하는 것과 같은 기본적인 것들에 꽤 좋은 것처럼 보입니다.

당신의 조언은 무엇입니까?

답변

1

당신은 셀레늄에 대해 싫어하는 것을 말하지 않았지만, 나는 당신이 자바 스크립트에 확신을 가지고 있다고 생각합니다. 따라서 CasperJS을 주 도구로 사용하는 것이 좋습니다. 한 페이지짜리 웹 응용 프로그램에서 잘 작동하며 자체 테스트 도구가 함께 제공됩니다. 코드는 중첩 된 wait 절을 사용할 때 여전히 약간의 복잡한 코드를 얻을 수 있습니다. 각 테스트에서 너무 많이하지 않으려 고하고, 여전히 복잡하다면 리팩토링을해서 그 문제를 해결하십시오. 테스트 용 설계를 잊지 마십시오. 선택 도구가 끔찍하게 복잡하면 <span id="xxxx">...</span>을 추가하여 테스트를 바로 수행 할 수 있습니다.

PhantomJSSlimerJS과 함께 CasperJS를 사용할 수 있습니다.

  • PhantomJS 1.x에서이 그래서 더 현대적인 기능을 실망 테스트 (사파리 5.1 및 크롬 13에 해당) 오래된 웹킷에 붙어 : 내 선호로, 현재 SlimerJS입니다.
  • SlimerJS는 Gecko 엔진과 함께 또는 직접 설치 한 Firefox 버전에서 작동 할 수 있습니다. 이렇게하면 추가 플러그인, 보안 인증서 등으로 Firefox 프로필을 구성 할 수 있습니다.
  • SlimerJS는 JavaScript로 작성되어 필요에 따라 해킹하기가 쉽습니다.

PhantomJS 2.0이 나오면 (잘하면 2013 년 말 예정) 사이트가 최신 HTML5 API에 의존하지 않으면 CasperJS를 두 번 실행하여 이중 적용을받을 수 있습니다. (BTW, PhantomJS 자연스럽게 헤드리스 (headless)입니다 SlimerJS은 Linux 또는 Mac 인 Xvfb를 사용합니다.) Selenium 여분을 제공 다른 브라우저, 특히 IE를 제어 할 수 있습니다 무엇

. SlimerJS와 같이 Selenium은 Xvfb가 헤드리스 (Windows 제외)가되도록 Xffb를 필요로합니다. (BTW, Selenium docs on supported browsers은 아직까지 업데이트되지 않았지만 각 브라우저의 이후 버전에는 적어도 동일한 지원이 있다고 가정합니다.)

+0

셀레늄에 대한 첫 번째 요지는 속도입니다. 그것은 매우 느립니다. – user337620

+0

@ user337620 내 Selenium 스크립트는 네트워크 액세스에 의해 지배되므로 시작하기 전을 제외하고는 느리게 인식하지 못했습니다. 나는 당신의 질문이 올해 작년에 8 월이라는 것을 깨달았습니다! 너는 무엇을 끝내고 그걸로 행복하니? –

+0

나는 CasperJS를 PhantomJS와 함께 사용했다. SlimerJS에 대해서도 살펴볼 것입니다. – user337620

관련 문제