2016-03-24 22 views
4

Emberアプリケーションでテストを実行しているときにこのエラーが発生しました。明らかに、テスト環境のロードに失敗するような構文エラー(Unexpected token ',')が発生しているため、すべての単一テストが失敗します。その後、global failureを言うとEmber.jsがPhantomJS構文エラーのために失敗しました

$ ember test 
version: 1.13.13 
Built project successfully. Stored in "/Users/ernesto/code/projects/my-app/frontend/tmp/class-tests_dist-cqvfx9XF.tmp". 
not ok 1 PhantomJS 2.0 - global failure 
    --- 
     actual: > 
      null 
     message: > 
      SyntaxError: Unexpected token ',' 
     Log: | 
    ... 
not ok 2 PhantomJS 2.0 - global failure 
    --- 
     actual: > 
      null 
     message: > 
      Error: Could not find module `frontend/config/environment` imported from `frontend/tests/helpers/resolver` 
     Log: | 
    ... 
not ok 3 PhantomJS 2.0 - global failure 
    --- 
     actual: > 
      null 
     message: > 
      Error: Assertion Failed: The tests file was not loaded. Make sure your tests index.html includes "assets/tests.js". 
     Log: | 
    ... 
not ok 4 PhantomJS 2.0 - Integration | Component | dropdown filter: it renders all given options and the empty option 
    --- 
     actual: > 
      null 
     message: > 
      Promise rejected before it renders all given options and the empty option: you must set a resolver with `testResolver.set(resolver)` 
     Log: | 
    ... 

お知らせ上記の最初のエラーは、予期しないコンマトークンを報告します。その後、存在するファイルをインポートできないか、またはtestResolverが設定されていないなど、残りのテストはすべて失敗します。

ブラウザですべてが正しく動作しています。これは、PhantomJSがどこかの構文ではより厳密であることと関係しているようです。しかし、この不正なカンマがどこにあるかに関するエラーメッセージには何の兆候もありません。

このコンマを見つけたり、このエラーを解決する方法についてのヒントを教えてもらえますか?前もって感謝します。オブジェクトは、プロパティ名が重複しているとき

+0

エラーを導入したコミットのdiffを見ることができると思うかもしれません。さて、マージコミットになります。そして、エラーは、マージ前の2つのマージされたブランチのいずれにも発生しません。これらのブランチの1つが他のブランチに結合された後にのみ発生します。また、マージ時には構文エラーが発生している可能性があります。たとえそうであったとしても、開発モードのブラウザでは、テストを実行しているときにエラーが表示されません。 – Ernesto

+0

いくつかのES5構文チェッカーを実行して、エラーを見つけます。 –

+0

私はあまりにも多くのES6機能を使用していることを恐れているので、ES5のシンタックスチェッカーは自分のコードでうまくいくでしょう。か否か?何か不足していますか? – Ernesto

答えて

6

PhantomJSは、例えば、構文エラーがスローされます。

var object = { foo: 1, foo: 2 }; 

ほとんどのブラウザでは、構文エラーとしてこれを見るとちょうど最後のプロパティ定義を使用しないでください。