web-dev-qa-db-ja.com

Node.jsテストモジュールであるMochaをどのようにインストールして実行しますか?インストール後に「mocha:コマンドが見つかりません」を取得する

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回目の試行で上記のエラーについて考えたことはありますか?

編集:

私は走っている、

  • Ubuntu 11.10 64ビット
  • Node.js 0.7.5
  • npm 1.1.8
  • モカ0.14.1
  • 0.6.0
80
Stephen Melrose

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
166
Benja

さらに読んで、上記のLinus G Thielから確認した後、私は単にしなければならなかったことがわかりました、

  • Node.js 0.6.12へのダウングレード
  • そしてどちらか、
    • Mochaをグローバルとしてインストールする
    • ./node_modules/.binPATHに追加します
18
Stephen Melrose

Windowsの場合:

Package.json

  "scripts": {
    "start": "nodemon app.js",
    "test": "mocha"
  },

その後、コマンドを実行します

npm run test
0
Ashutosh Jha