আপনি নোড.জেএস টেস্টিং মডিউল, মোচা কীভাবে ইনস্টল ও পরিচালনা করবেন? ইনস্টলের পরে "মোচা: কমান্ড পাওয়া যায় না" পাওয়া


90

আমি মোচাকে প্রত্যাশা অনুযায়ী কাজ করতে পেতে সমস্যা হচ্ছি , এবং আমি নথিভুক্ত হিসাবে বলতে চাই, তবে জিনিসটি চলমান হওয়ার বিষয়ে খুব বেশি ডকুমেন্টেশন না থাকার (উপস্থিত) আছে।

আমি এটি 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)

আমি কীভাবে কেবল একটি একক কমান্ড দিয়ে আমার পরীক্ষা চালাতে পারি? মানতগুলি আপনাকে দেয় বলে মনে হয় তবে আমি শুনেছি মোচা আরও ভাল পছন্দ, আমি ঠিক এটি সঠিকভাবে কাজ করানোর জন্য মনে করতে পারি না।

এবং তৃতীয় প্রয়াসে আমি ত্রুটি সম্পর্কে কোনও ধারণা পেয়েছি?

সম্পাদনা করুন:

আমি দৌড়াচ্ছি,

  • উবুন্টু 11.10 64-বিট
  • নোড.জেএস 0.7.5
  • এনপিএম 1.1.8
  • মোচা 0.14.1
  • 0.6.0 করা উচিত

4
নোড 0.6.12, এনপিএম 1.1.4 এবং কার্যকর করে npm install mocha, আমি ./node_modules/.bin/mochaপ্রত্যাশা অনুযায়ী পেয়েছি as sudo npm install -g mochaআমাকে পায় /usr/local/bin/mocha। যদি এটি আপনার পরিবেশে সঠিকভাবে কাজ না করে তবে এটি একটি বাগ হতে পারে, বা নোড 0.7 সমর্থন করার জন্য কেবল মোচা আপডেট করা হয়নি * আপনার থামিয়ে দেওয়া সাবধানবাণী সম্বন্ধে existsএবং existsSyncথেকে সরানো হয়েছে pathথেকে fsনোড 0.7.1 হবে।
লিনাস থিল

আমি নোড.জেএস ০..6.১২ এ ডাউনগ্রেড করেছি, "./node_modules/.bin" আমার পথের সাথে যুক্ত করেছি এবং বিশ্বের সাথে ঠিক আছে।
স্টিফেন মেলরোজ

উত্তর:


180

এনপিএম ৫.২.০ থেকে, এনপিএম-এর সাথে একটি নতুন কমান্ড "এনপিএক্স" অন্তর্ভুক্ত রয়েছে যা আপনি চালিত হলে এটিকে আরও সহজ করে তোলে:

npx mocha <args>

দ্রষ্টব্য: alচ্ছিক আর্গুমেন্টগুলি কার্যকর করা কমান্ডটিতে ফরোয়ার্ড করা হয়েছে (এই ক্ষেত্রে মোচা)

এটি স্বয়ংক্রিয়ভাবে আপনার স্থানীয়ভাবে ইনস্টল করা মোচা থেকে নির্বাহযোগ্য "মোচা" কমান্ডটি বেছে নেবে (সঠিকভাবে আপনার এবং অন্য প্রত্যেকে ব্যবহার করবেন কিনা তা নিশ্চিত করার জন্য এটি সর্বদা ডেভ নির্ভরতা হিসাবে যুক্ত করুন)।

সতর্কতা অবলম্বন করুন যে আপনি যদি মোচা ইনস্টল না করে থাকেন তবে এই কমান্ডটি স্বয়ংক্রিয়ভাবে সর্বশেষ সংস্করণটি আনবে এবং ব্যবহার করবে যা কিছু সরঞ্জামের জন্য দুর্দান্ত (উদাহরণস্বরূপ স্ক্যাফোল্ডারগুলির মতো) তবে আপনি যে কোনও নির্দিষ্ট নির্ভরতার জন্য সম্ভবত সবচেয়ে সুপারিশ নাও করতে পারেন নির্দিষ্ট সংস্করণে পিন করুন।

আপনি এখানে এনপিএক্স-এ আরও পড়তে পারেন


এখন, যদি আপনি সরাসরি মোচা শুরু করার পরিবর্তে, আপনি একটি কাস্টম এনএমপি স্ক্রিপ্ট সংজ্ঞায়িত করতে চান, এমন একটি উপাধি যা অন্য এনপিএম বাইনারিগুলিকে ডাকতে পারে ...

আপনি চান না যে আপনার লাইব্রেরি পরীক্ষাগুলি মেশিন সেটআপ (গ্লোবাল, গ্লোবাল মোচা সংস্করণ, ইত্যাদি হিসাবে মোচা) এর উপর নির্ভর করে ক্রস-প্ল্যাটফর্মের সাথে কাজ করে এমন স্থানীয় মোচা ব্যবহারের উপায়টি নির্ভর করে:

node node_modules/.bin/mocha

এনপিএম সেই বিশেষ ফোল্ডারে আপনার নির্ভরতার মধ্যে সমস্ত বাইনারিগুলির উপাধি রাখে। অবশেষে, এনপিএম এনপিএম স্ক্রিপ্ট চলাকালীন স্বয়ংক্রিয়ভাবে PATH এ নোড_মডিউলগুলি / .bin যুক্ত করবে, সুতরাং আপনার প্যাকেজ.জেসনে আপনি কেবল এটি করতে পারেন:

"scripts": {
  "test": "mocha"
}

এবং এটি প্রার্থনা

npm test

4
+1, আমি কিছুদিন আগে থেকে মোচা ব্যবহার করে আসছি তবে আমি তা বুঝতে পারি নি। এটি গ্রহণযোগ্য উত্তর হওয়া উচিত!
গিহানচূড়া

6
@ michael.kebe না, স্থানীয় মোচা ব্যবহার করার জন্য আপনাকে সেই পাথটি নির্দিষ্ট করার দরকার নেই, এনপিএম ইতিমধ্যে "./node_modules/.bin" $ PATH এ যুক্ত করেছে, তাই এটি স্থানীয় সংস্করণটি ডিফল্টরূপে ব্যবহার করবে।
বেনজা

আমি বিশ্বাস করি যে কমান্ডটি নোড_মডিউলগুলি / মোচা / বিন / মোচা নোড নোড_মডিউলগুলি / .বিন / মোচা হওয়া উচিত
মিনা লূক

4
@ মিনালুক যা খুব বেশি কাজ করে কিন্তু এটি একটি খারাপ ধারণা, এটি এমন একটি /node_modules/.bin/{module-binary-name}জায়গা যেখানে এনপিএম আপনার নির্ভরতাগুলিতে বাইনারিগুলিকে শর্টকাট দেয়, আপনার নির্ভরতার উত্সগুলিতে সরাসরি কোনও ফাইলকে উল্লেখ করা উচিত নয়, কারণ এটি পরবর্তী সংস্করণে ভেঙে যেতে পারে।
বেনজা

4
@ ডুগবারবিয়েরি চমৎকার ধরা, এটি একটি পুরানো উত্তর, আমি এনপিএক্স উল্লেখ করার জন্য আপডেট করব, ধন্যবাদ!
বেনজা

18

উপরে পড়ার পরে, এবং উপরে লিনাস জি থিয়েলের কাছ থেকে নিশ্চিতকরণের পরে, আমি দেখতে পেলাম যে আমাকে কেবল,

  • নোড.জেএস 0.6.12 এ ডাউনগ্রেড
  • এবং যেভাবেই,
    • গ্লোবাল হিসাবে মোচা ইনস্টল করুন
    • ./node_modules/.binআমার যোগ করুনPATH

4
আমার কাছে 0.8.12 নোড এবং মোচা বিশ্বব্যাপী এবং স্থানীয়ভাবে উভয়ই ইনস্টল করা হয়েছে (বিভিন্ন প্রকল্পের জন্য), এবং তারা কাজ করছে। সুতরাং নোড ডাউনগ্রেড করার দরকার নেই। স্থানীয়ভাবে ইনস্টল করা মোছার জন্য, আপনার প্যাথটি উপরের মত সেট করা আছে তা নিশ্চিত করুন, বা আপনার স্ক্রিপ্ট থেকে সরাসরি কল করুন (মেকফিল বা "স্ক্রিপ্টস" ট্যাগ)।
কিচাও দং

4
আমি মোচা স্থানীয় এবং বিশ্বব্যাপী ইনস্টল করেছিলাম তবে এটি (উইন 8)-তে পাওয়া যায় নি। আমার প্যাথের সাথে আমার প্রকল্পের সাথে সম্পর্কিত './node_modules/.bin' ফোল্ডারটি আমি নিজে যুক্ত করতে হয়েছিল, কনসোলটি পুনরায় চালু করতে হবে এবং তারপর 'মোচা' টাইপ করার কাজ হবে। আদর্শ নয়, এটি কার্যকর করার জন্য একটি দ্রুত হ্যাক। আপনার যদি স্থানীয়ভাবে মোচা ইনস্টল করার জন্য যদি শীর্ষ স্তরের অবস্থান থাকে তবে সেই পথের সাথে লিঙ্ক করুন যাতে আপনি এটি অন্য কোথাও ব্যবহার করতে পারেন।
আলী

1

উইন্ডোজ জন্য:

প্যাকেজ.জসন

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

তারপর কমান্ড চালান

npm run test

1

মোচার জন্য নোড মডিউলগুলি ইনস্টল করার সময় আমি নীচের কমান্ডগুলি চেষ্টা করেছিলাম

  • এনপিএম ইনস্টল
  • এনপিএম মোচা ইনস্টল করুন
  • এনপিএম ইনস্টল - সেভ-দেব মোচা
  • বিশ্বজুড়েও এটি ইনস্টল করতে এনপিএম ইনস্টল করুন মোচা-জি #

এবং মোচা পরীক্ষা চালানোর বা চালানোর সময় আমি চেষ্টা করছিলাম

  • মোচা পরীক্ষা
  • এনপিএম রান পরীক্ষা
  • মোচা টেস্ট পরীক্ষা \ index.test.js
  • এনপিএম পরীক্ষা

তবে আমি নীচের ত্রুটিটি পেয়ে যাচ্ছিলাম:

'মোচা' অভ্যন্তরীণ বা বাহ্যিক আদেশ হিসাবে স্বীকৃত নয়

সুতরাং, সমস্ত কিছু চেষ্টা করার পরে এটি কেবল সিস্টেম ভেরিয়েবলের অধীনে পরিবেশের ভেরিয়েবলের পথ নির্ধারণ করে বেরিয়ে আসে:

সি: \ প্রোগ্রাম ফাইল \ নোডেজ \

এবং এটা কাজ করে :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.