私のpackage.json
には次のものがあります。npmテストは手動実行と異なります
"scripts": {
"test": "NODE_ENV=test mocha **/*.spec.js"
}
npm test
を実行すると、サブディレクトリ内で1回のテストが完了します。
# npm test
sample test
✓ single task
1 passing
私がコンソールで手動でスクリプトを実行すると、すべてのテストが完了します。
# NODE_ENV=test mocha **/*.spec.js
sample test
✓ single task
sample test x2
✓ single task x1
✓ single task x2
✓ single task x3
✓ single task x4
✓ single task x5
sample test x3
✓ single task x1
✓ single task x2
✓ single task x3
✓ single task x4
✓ single task x5
✓ single task x6
sample test x4
✓ single task x1
✓ single task x2
✓ single task x3
✓ single task x4
16 passing (15s)
なぜ同じコマンドが実行されているのですか?すべてのテストを実行するにはどうすればnpm test
になるのですか?
'devDependencies'に' mocha'がありますか?あなたの端末と 'test'スクリプトの両方で単にコマンドを' mocha --version'に変更するとどうなりますか?バージョンは異なりますか?私は彼らが推測している。おそらくそれらの1つはバグです。 'mocha'のローカルコピーを強制的に更新するには、' devDependencies'が最新のバージョンであることを確認してから 'rm -rf node_modules && npm cache clean && npm install'を実行してください。 –
' mocha'バージョンは 'npm 'とマニュアル。 3.2.0。 すでにmochaを再インストールしようとしていました。私はあなたの命令で、同じことを確実にするために、もう一度やりました。まだ1回だけテストを実行します。 – sketchthat
万が一、Windowsを使用していますか?実行している端末プログラムとシェル( 'echo $ 0')を試してみてください。 'NODE_ENV'はあなたのコードにとって本当に重要ですか?その環境変数が正しく設定またはエクスポートされていない場合、どのようなことが起こりますか? globパターンを 'NODE_ENV = test mocha test/*。spec.js'(非再帰的ファイルのワイルドカード)のように変更すると、何が起きるのか不思議です。それはグロビングと関係があるようです。 –