2017-04-26 10 views
1

create-react-appを使用して作成したプロジェクトがあります。最初にプロジェクトを作成したとき、テストはうまくいった。私はしばらくの間、それらを実行していない後にテストを実行することを決定した(私はまだいずれかを書いていないので、生成されたテストクラスは、私が持っているすべてである)と、今、私は次のエラーを取得しています:反応スクリプトの実行時に "エラー:spawn git ENOENT"が発生する

Determining test suites to run...Error: spawn git ENOENT 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) 
    at onErrorNT (internal/child_process.js:344:16) 
    at nextTickCallbackWith2Args (node.js:442:9) 
    at process._tickCallback (node.js:356:17) 

Gitがあります間違いなく、私はコマンドラインからgit --versionを実行することができ、期待通りに出力します。 cygwinやWindowsのコマンドラインで実行した場合、同じエラーが発生します。

私のpackage.jsonは、次のようになります。

{ 
    "name": "my-app", 
    "version": "0.1.0", 
    "private": true, 
    "dependencies": { 
    "immutable": "^3.8.1", 
    "react": "^15.5.4", 
    "react-dom": "^15.5.4" 
    }, 
    "devDependencies": { 
    "react-scripts": "0.9.5" 
    }, 
    "scripts": { 
    "start": "react-scripts start", 
    "build": "react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
    } 
} 

編集:私はプロジェクトがgitリポジトリにあるとき、私のテストにのみ失敗することを発見したの周りにいくつかの演奏の後。プロジェクトのコピーを「.git」フォルダなしで取得した場合は、コピーからテストを実行し、すべて正常に動作します。

答えて

1

私は結局これを引き起こしていたことを理解しました。 gestがJestウォッチャーの一部として起動されたときに、私のローカル設定に関する何かがエラーを引き起こしています(まだ何もクリアしていません)。作成反応するアプリのドキュメントから:

By default, when you run npm test, Jest will only run the tests related to files changed since the last commit. This is an optimization designed to make your tests runs fast regardless of how many tests you have. However it assumes that you don’t often commit the code that doesn’t pass the tests.

Source

彼らはset CI=true&&npm testでCI環境で実行しているかのようにテストを実行するGitの機能をバイパスし、私は私のテストを実行することができます。 More information here

jestプロジェクトにもオープンバグがあります。https://github.com/facebook/jest/issues/3214

関連する問題