Mocha を期待どおりに動作させるのに問題があり、ドキュメントに記載されているとおりに言いたいのですが、実際に実行するためのドキュメントがあまりないようです(表示されます)。
npm
(グローバルおよびローカルの両方)を使用してインストールしており、実行するたびに次のようになります。
$ mocha
mocha: command not found
わかりましたので、PATH
にないので、直接実行してみました。
$ ./node_modules/mocha/bin/mocha
execvp(): No such file or directory
最後に、他のbin
ファイルをヒットしてみましたが、
$ ./node_modules/mocha/bin/_mocha
path.existsSync is deprecated. It is now called `fs.existsSync`.
.
✔ 1 tests complete (1ms)
単一のコマンドでテストを実行するにはどうすればよいですか? Vows を使用すると思われますが、Mochaの方が良い選択だと聞いたことがありますが、正しく動作しないようです。
そして、3回目の試行で上記のエラーについて考えたことはありますか?
編集:
私は走っている、
npm 5.2.0以降、npmには新しいコマンド「npx」が含まれており、これを実行すると、これが非常に簡単になります。
npx mocha <args>
注:オプションの引数は、実行中のコマンド(この場合はmocha)に転送されます
これにより、ローカルにインストールされたmochaから実行可能な「mocha」コマンドが自動的に選択されます(常に正しい依存関係が常に使用されるように、dev依存関係として追加します)。
ただし、mochaをインストールしなかった場合、このコマンドは自動的に最新バージョンを取得して使用するので注意してください。これは一部のツール(たとえばscaffolderなど)には最適ですが、特定の依存関係には最適ではない可能性があります特定のバージョンに固定します。
Npxで詳細を読むことができます こちら
ここで、mochaを直接呼び出す代わりに、カスタムnpmスクリプト、他のnpmバイナリを呼び出す可能性のあるエイリアスを定義する場合...
マシンのセットアップ(グローバルとしてのmocha、グローバルmochaのバージョンなど)に応じてライブラリテストが失敗しないように、クロスプラットフォームで機能するローカルmochaの使用方法は次のとおりです。
node node_modules/.bin/mocha
npmは、その特別なフォルダーの依存関係にあるすべてのバイナリにエイリアスを置きます。最後に、npmは、npmスクリプトの実行時にnode_modules/.binをPATHに自動的に追加するため、package.jsonで次のことができます。
"scripts": {
"test": "mocha"
}
そしてそれを呼び出す
npm test
さらに読んで、上記のLinus G Thielから確認した後、私は単にしなければならなかったことがわかりました、
./node_modules/.bin
をPATH
に追加しますWindowsの場合:
Package.json
"scripts": {
"start": "nodemon app.js",
"test": "mocha"
},
その後、コマンドを実行します
npm run test