Saya mengalami masalah dalam membuat Mocha bekerja seperti yang diharapkan, dan saya ingin mengatakan seperti yang didokumentasikan, tetapi (tampaknya) tidak banyak dokumentasi tentang benar-benar menjalankannya.
Saya telah menginstalnya menggunakan npm
(baik secara global maupun lokal), dan setiap kali saya menjalankannya saya mendapatkan:
$ mocha
mocha: command not found
Oke, jadi saya pikir itu tidak ada di saya PATH
, jadi saya mencoba menjalankannya secara langsung,
$ ./node_modules/mocha/bin/mocha
execvp(): No such file or directory
Akhirnya, saya mencoba membuka bin
file lain , dan mendapatkan,
$ ./node_modules/mocha/bin/_mocha
path.existsSync is deprecated. It is now called `fs.existsSync`.
.
✔ 1 tests complete (1ms)
Bagaimana saya bisa menjalankan pengujian saya dengan satu perintah? Tampaknya sumpah mengizinkanmu, tetapi kudengar Mocha adalah pilihan yang lebih baik, sepertinya aku tidak bisa membuatnya berfungsi dengan benar.
Dan ada pemikiran tentang kesalahan yang saya dapatkan di atas dalam upaya ketiga saya?
Edit:
Saya sedang berlari,
- Ubuntu 11.10 64-bit
- Node.js 0.7.5
- npm 1.1.8
- moka 0.14.1
- harus 0.6.0
npm install mocha
, saya mendapatkan./node_modules/.bin/mocha
seperti yang diharapkan.sudo npm install -g mocha
menangkap saya/usr/local/bin/mocha
. Jika ini tidak berfungsi dengan baik di lingkungan Anda, ini mungkin bug, atau hanya mocha tidak diperbarui untuk mendukung node 0.7. *. Mengenai peringatan penghentian Anda,exists
danexistsSync
dipindahkan daripath
kefs
dalam node 0.7.1.Jawaban:
sejak npm 5.2.0, ada perintah baru "npx" yang disertakan dengan npm yang membuatnya lebih sederhana, jika Anda menjalankan:
Catatan: argumen opsional diteruskan ke perintah yang sedang dijalankan (dalam hal ini mocha)
ini secara otomatis akan memilih perintah "mocha" yang dapat dieksekusi dari mocha yang diinstal secara lokal (selalu tambahkan sebagai ketergantungan dev untuk memastikan perintah yang benar selalu digunakan oleh Anda dan orang lain).
Berhati-hatilah karena jika Anda tidak menginstal mocha, perintah ini akan secara otomatis mengambil dan menggunakan versi terbaru, yang bagus untuk beberapa alat (seperti scaffolder misalnya), tetapi mungkin bukan yang paling direkomendasikan untuk dependensi tertentu di mana Anda mungkin ingin melakukannya. pin ke versi tertentu.
Anda dapat membaca lebih lanjut tentang npx di sini
Sekarang, jika alih-alih memanggil mocha secara langsung, Anda ingin menentukan skrip npm kustom, alias yang mungkin memanggil biner npm lainnya ...
Anda tidak ingin tes perpustakaan Anda gagal bergantung pada penyiapan mesin (mocha sebagai global, versi mocha global, dll), cara menggunakan mocha lokal yang bekerja lintas platform adalah:
npm menempatkan alias ke semua binari di dependensi Anda pada folder khusus itu. Terakhir, npm akan menambahkan node_modules / .bin ke PATH secara otomatis saat menjalankan skrip npm, jadi di package.json Anda dapat melakukan:
"scripts": { "test": "mocha" }
dan memohon dengan
sumber
/node_modules/.bin/{module-binary-name}
adalah tempat npm menempatkan pintasan ke biner dalam dependensi Anda, Anda tidak boleh merujuk secara langsung file di sumber dependensi, karena itu mungkin rusak pada versi berikutnya.Setelah membaca lebih lanjut, dan konfirmasi dari Linus G Thiel di atas, saya merasa bahwa saya harus,
./node_modules/.bin
ke sayaPATH
sumber
Untuk windows:
"scripts": { "start": "nodemon app.js", "test": "mocha" },
lalu jalankan perintahnya
sumber
Saat memasang modul node untuk mocha saya telah mencoba perintah di bawah ini
dan saat menjalankan atau menjalankan uji moka saya mencoba
tetapi saya mendapatkan kesalahan di bawah ini sebagai:
'Mocha' tidak dikenali sebagai perintah internal atau eksternal
Jadi, setelah mencoba semuanya, ternyata hanya mengatur jalur ke variabel lingkungan di bawah Variabel Sistem sebagai:
C: \ Program Files \ nodejs \
dan itu berhasil :)
sumber