2017-01-11 3 views
0

Я пытаюсь интегрировать SlimerJS с кармой, чтобы проверить ECMAScript 6 и код AngularJS.Как интегрировать Karma с SlimerJS для тестирования кода ES6?

Когда я тестировал код ES6 непосредственно с помощью SlimerJS, он загружает версию 0.10.2, которую я установил, и ее работы для моего кода ES6. Мой Firefox установлен в версии 50.1.0, и он корректно работает с SlimerJS, когда я вызываю его напрямую через SlimerJS. Моя переменная SLIMERJSLAUNCHER была настроена правильно, как указывает документация SlimerJS.

Но мне нужно проверить код AngularJS и ES6, поэтому мне нужна карма, но не нашел способ интегрировать SlimerJS с кармой.

Я попытался использовать karma-slimerjs-launcher, но он загружает более старую версию Firefox и SlimerJS. Когда я зову Карму кармы-slimerjs-пусковой работают Firefox 38 и SlimerJS 0.9.6, и поэтому я потерять поддержку ECMAScript 6.

Существует способ сделать карму-slimerjs-пусковым называют версию Firefox и SlimerJS, который я установил в своей системе, вместо того, чтобы называть эти «встроенные» версии, которые он, кажется, приносит?

Или есть лучший способ интегрировать Karma и SlimerJS без карма-slimerjs-launcher?

Спасибо.

ответ

0

Я обнаружил ответ на проблему. Вместо использования пусковой установки, которая поставляется с устаревшими версиями, можно просто запустить карму, как правило, без браузера.

Просто введите:

karma start 

Тогда можно начать обезглавленный SlimerJS с помощью команды:

Xvfb-run ./slimerjs myscript.js 

В сценарии JS, выделим навигацию к серверу карма:

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

Как только SlimerJS входит в сервер Karma, тесты начинают работать.

Недостатком этого метода является то, что она принимает два окна терминала для выполнения тестов, так что я сделал небольшой скрипт в Python, чтобы решить эту проблему и служат в качестве пусковой установки:

#!/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 

Если кто-то имеет такую ​​же проблему, интегрирующую карму с slimerjs, чтобы проверить ES6 это было мое решение.

 Смежные вопросы

  • Нет связанных вопросов^_^