2017-01-11 7 views
0

저는 ECMAScript 6과 AngularJS 코드를 테스트 할 수 있도록 SlimerJS를 Karma와 통합하려고합니다.카르마를 SlimerJS와 통합하여 ES6 코드를 테스트하는 방법은 무엇입니까?

SlimerJS로 직접 ES6 코드를 테스트했을 때 설치 한 버전 0.10.2와 그 코드가 ES6 코드로 작동합니다. 내 Firefox가 설치되어있는 버전은 50.1.0이며 SlimerJS를 통해 직접 호출 할 때 SlimerJS와 올바르게 작동합니다. SLIMERJSLAUNCHER 변수가 SlimerJS 문서에서 지시 한대로 올바르게 구성되었습니다.

하지만 AngularJS 및 ES6 코드를 테스트해야하므로 카르마가 필요하지만 카르마와 SlimerJS를 통합하는 방법을 찾지 못했습니다.

karma-slimerjs-launcher를 사용하려고했지만 Firefox와 SlimerJS의 이전 버전을로드 중입니다. 내가 카르마 - slimerjs 발사기는 파이어 폭스 (38)와 SlimerJS 0.9.6 실행되고 그래서 인 ECMAScript 6에 대한 지원을 잃게 카르마를 호출 할 때

파이어 폭스의 버전을 호출 카르마 - slimerjs 발사기 만들 수있는 방법이 있고 SlimerJS는 내가 가져온 것 같은 "임베디드"버전 대신 시스템에 설치 했습니까?

아니면 karma-slimerjs-launcher없이 Karma와 SlimerJS를 통합하는 더 좋은 방법이 있습니까?

감사합니다.

답변

0

나는이 문제에 대한 해답을 발견했다. 구 버전의 런처를 사용하는 대신 브라우저없이 카르마를 정상적으로 시작할 수 있습니다.

그냥 입력 :

karma start 

그 다음이 명령을 사용하여 SlimerJS 헤드리스 시작할 수 :

: 우리는 카르마 서버 탐색을 가리키는 JS 스크립트에서

Xvfb-run ./slimerjs myscript.js 

window.location.href = 'http://localhost:9876/'; 

SlimerJS가 카르마 서버에 들어가면 테스트가 시작됩니다.

이 방법의 단점은 테스트를 실행하는 두 개의 터미널 창을 소요, 그래서 파이썬에 약간의 스크립트가이 문제를 해결하고 실행 역할을 않았다입니다 :이

#!/usr/bin/env python3 

import subprocess 
import time 

karma = '' 
slimerjs = '' 

while True: 
    try: 
     if not karma: 
      # Load a Karma server 
      print('\nKarma is loading...\n') 
      karma = subprocess.Popen('./karma start', shell=True) 

      # delays for 2 seconds for waiting Karma server 
      time.sleep(2) 

      # Load a headless SlimerJS that points to Karma server 
      slimerjs = subprocess.Popen(
       'xvfb-run slimerjs slimerjs-cfg.js > slimerjs.log', shell=True) 
      print('\nSlimerJS is running...\n') 
    except KeyboardInterrupt: 
     karma.kill() 
     print('\n\nKarma is stopped...\n') 
     slimerjs.kill() 
     print('\nSlimerJS is stopped...\n') 
     break 

를 시작합니다 함께 단일 콘솔 창에서 slimerJS와 카르마는 단지 입력 :

./karma-run.py 

다른 사람이 ES6이 있었다 내 솔루션을 테스트 slimerjs와 카르마를 통합 같은 문제가있는 경우.