[解決済み] Node.js のテストモジュールである Mocha のインストールと実行はどのように行うのですか?インストール後、"mocha: command not found "と表示される。
質問
私は モカ を期待どおりに動作させることができず、ドキュメントどおりと言いたいところですが、実際に動作させるためのドキュメントがあまりない(ように見える)ためです。
を使用してインストールしました。
npm
(グローバルとローカルの両方) を使用してインストールしましたが、実行すると毎回、次のようになります。
$ mocha
mocha: command not found
OK、それで、私はそれが私の
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)
どのようにすれば、1つのコマンドでテストを実行することができますか? 誓い はさせてくれるようですが、Mochaの方が良いと聞いていますが、どうしても正しく動作させることができません。
また、3回目の試行で上記のようなエラーが出たことについて、何かご意見はありますか?
編集してください。
走ってます。
- Ubuntu 11.10 64 ビット
- Node.js 0.7.5
- npm 1.1.8
- mocha 0.14.1
- 0.6.0にすべき
どのように解決するのですか?
npm 5.2.0 以降、npm に含まれる新しいコマンド "npx" があり、これを実行すれば、この作業ははるかに簡単になります。
npx mocha <args>
注意:オプションの引数は実行されるコマンドに転送されます(この場合はmocha)。
これは、ローカルにインストールされたmochaから実行可能な"mocha"コマンドを自動的に選びます(常に正しいものがあなたや他の人によって常に使われるように、開発依存としてそれを追加してください)。
mochaをインストールしていない場合、このコマンドは自動的に最新版を取得して使用することになるので注意が必要です。これは一部のツール(たとえばscaffoldersなど)にとっては素晴らしいことですが、特定のバージョンに固定したいような依存関係には最も推奨できないかもしれません。
npx の詳細はこちらをご覧ください。 をご覧ください。
さて、mochaを直接起動するのではなく、カスタムnpmスクリプト、つまり他のnpmバイナリを起動するようなエイリアスを定義したい場合ですが...。
マシンの設定(mocha as global, global mocha version, etc.)によってライブラリのテストが失敗しないように、クロスプラットフォームで動作するローカルのmochaを使用する方法です。
node node_modules/.bin/mocha
npmは、依存関係にあるすべてのバイナリのエイリアスをその特別なフォルダに置きます。 最後に、npmはnpmスクリプトを実行するときに、node_modules/.binを自動的にPATHに追加するので、package.jsonの中で、ちょうどそうすることができます。
"scripts": {
"test": "mocha"
}
で起動し
npm test
関連
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み] Express.js req.bodyが未定義です。
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsでディレクトリに存在するすべてのファイル名のリストを取得する方法は?
-
[解決済み] Node.jsのNPMモジュール(package.json)のdevDependenciesのインストールを防ぐにはどうすればよいですか?
-
[解決済み] Node.jsのバージョンはコマンドラインから?(REPLではありません)
-
[解決済み] Node.jsをバックグラウンドプロセスとして実行し、決して死なないようにする方法とは?
-
[解決済み] MochaとNode.jsを使ったプライベート関数のユニットテスト
-
[解決済み] sudo を使用しないと NPM モジュールがグローバルにインストールされない
-
[解決済み] node.js: モジュール 'request' が見つからない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み】Node.jsのホスト名/IPが証明書のaltnamesと一致しない。
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み] AWS lambda function error - Unable to import module 'index': エラー
-
[解決済み] AWS s3 api error: specified bucket does not exist.
-
[解決済み] ReferenceError: describe は定義されていません NodeJs
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?