2017-01-11 8 views
0

私はECMAScript 6とAngularJSコードをテストできるようにカルマとSlimerJSを統合しようとしています。カルマを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-ランチャーは、Firefox 38とSlimerJS 0.9.6を実行しているので、私はECMAScriptの6

のサポートを失うカルマ-slimerjs-ランチャーは、Firefoxのバージョンを呼び出すようにする方法がありますカルマを呼び出し、私が自分のシステムにインストールしたSlimerJSは、持っていると思われる埋め込みバージョンを呼び出すのではなく、

また、karma-slimerjs-launcherを使用せずにKarmaとSlimerJSを統合する方法がありますか?

ありがとうございました。

答えて

0

私は問題の答えを発見しました。 古いバージョンに付属のランチャーを使用する代わりに、ブラウザを使わずにカルマを正常に起動することができます。

だけ入力します。

karma start 

を次にコマンドでSlimerJSのヘッドレスを開始することが可能である:

:私たちはカルマサーバーへのナビゲーションを指すJSスクリプトで

Xvfb-run ./slimerjs myscript.js 

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

SlimerJSがカルマサーバーに入ると、テストが始まります。

この方法の欠点は、それがテストを実行するために、2つのターミナルウィンドウを取るので、私は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 

を他の誰かが、これは私の解決策だったES6をテストするためのslimerjsでカルマを統合し、同じ問題を持っている場合。

関連する問題