জাস্ট ব্যবহার করে আমি একটি একক ফাইল কীভাবে পরীক্ষা করব?


359

আমি জাস্ট ব্যবহার করে একাধিক ফাইল পরীক্ষা করতে সক্ষম হয়েছি, তবে একটি ফাইল কীভাবে পরীক্ষা করতে হবে তা আমি বুঝতে পারি না।

আমার আছে:

  • চালান npm install jest-cli --save-dev
  • আপডেট হয়েছে package.json: `{..." স্ক্রিপ্ট ": test" পরীক্ষা ":" ঠাট্টা "} ...}
  • লিখেছেন বেশ কয়েকটি পরীক্ষা।

চলমান npm testপ্রত্যাশা অনুযায়ী কাজ করে (বর্তমানে এটি 14 টি পরীক্ষা চালায়)।

আমি কীভাবে একটি একক ফাইল যেমন পরীক্ষা করব app/foo/__tests__/bar.spec.js?

আমি চালানোর চেষ্টা করেছি npm test app/foo/__tests__/bar.spec.js(প্রকল্পের মূল থেকে) তবে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'

ধন্যবাদ

উত্তর:


296

নির্দিষ্ট পরীক্ষা চালানোর জন্য আপনাকে jestকমান্ডটি ব্যবহার করতে হবে । npm testকাজ করবে না. jestকমান্ড লাইনে সরাসরি অ্যাক্সেস করতে , এটির মাধ্যমে npm i -g jest-cliবা ইনস্টল করুন yarn global add jest-cli

তারপরে সহজেই আপনার নির্দিষ্ট পরীক্ষাটি চালান jest bar.spec.js

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


5
দুর্ভাগ্যক্রমে এটি আমার পক্ষে কাজ করছে না। দৌড় jest bar.spec.jsদেয় jest: command not found। আমি নিশ্চিত করেছি জেস্ট ইনস্টলড ( npm list -g jestশো jest@0.1.37)। এফডাব্লুআইডাব্লু, যখন আমি npm testএটি ব্যবহার করে চালাই jest-cli
Musket

4
হ্যাঁ, jest-cliএটি সঠিক মডিউল, এটি বিশ্বব্যাপী ইনস্টল করুন npm install -g jest-clijestএনপিএম এ ... অন্য কিছু
ncuillery

56
এটা ভুল। এনপিএম টেস্ট ওয়ার্কিংয়ের অর্থ এই নয় যে তামাশা বিশ্বব্যাপী ইনস্টল করা আছে। এর অর্থ হ'ল আপনার প্রকল্পের মধ্যে জাস্ট ইনস্টল করা আছে।
চিডো

20
পছন্দ করুন @ চিইডো জন ডা। এটি বিশ্বব্যাপী ইনস্টল না করে চালানোর জন্য, আপনি এটি আপনার অ্যাপের মূল থেকে চালাতে পারেন:node_modules/.bin/jest args
এডি মঙ্গ জুনিয়র

3
আপনি যদি ডিফল্ট জুঁই সেটআপ ব্যবহার করেন তবে এর fitপরিবর্তে আপনি একটি পরীক্ষায় ফোকাস করতে পারেন it

380

আপনাকে যা করতে হবে তা হ'ল ম্যাগিক ইন্ট্যান্টেশন:

npm test -- SomeTestFileToRun

স্ট্যান্ডেলোন --হ'ল বিকল্পগুলির শেষ চিহ্নিত করার জন্য নিক্স ম্যাজিক, যার অর্থ (এনপিএমের জন্য) যে তার পরে সবকিছু কমান্ডে চালিত হয়, এক্ষেত্রে jest। অন্যদিকে, আপনি জাস্ট ব্যবহারের নোটগুলি বলার মাধ্যমে প্রদর্শন করতে পারেন

npm test -- --help

যাইহোক, জপ

npm test -- Foo

নামযুক্ত ফাইল ( FooBar.js) এ পরীক্ষা চালায় । আপনার লক্ষ করা উচিত, যদিও:

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

  • জেস্ট অনুমানটিকে একটি উপসর্গ হিসাবে দেখায়।

সুতরাং উপরের উদ্দীপনা হবে

  • চালান FooBar.js, Foo.jsএবংFooZilla.js
  • কিন্তু চালানো হয় না foo.js

ধন্যবাদ, দুর্ভাগ্যক্রমে এটি চালানোর সময় আমি একই ত্রুটি পেয়েছি:npm ERR! Error: ENOENT, open '<path to project>/node_modules/<name of file>/package.json'
মাসকেট

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

@ শুয়োগসওয়ান্ট: এটি কোনও মন্তব্য নয়। এটি নিজেই একটি প্রশ্ন। আপনার স্ট্যাকওভারফ্লোতে এটি জিজ্ঞাসা করা উচিত।
নিকোলাস কেরি

1
আমার ক্ষেত্রে সরলভাবে npm test ToDoForm.test.jsকাজ করা jest ToDoForm.test.jsহয়নি যখন
টমাসজ মুলারসাইক

কেস সংবেদনশীলতা সম্পর্কে আপনার দ্বিতীয় বিষয় আপনি উপরে প্রদত্ত জ্বলন মেলে না।
এনএসজোনাস

38

স্বতন্ত্র পরীক্ষা চালাতে:

npm test -t ValidationUtil # `ValidationUtil` its my module `ValidationUtil.spec.js`

-t- এটির পরে পরীক্ষার নাম সম্বলিত একটি রেজেেক্স রাখার পরে ।


1
অসাধারণ! দুর্দান্ত কাজ করেছেন!
ফ্ল্যাভিও

21

ব্যবহারের npm testঅর্থ হ'ল জাস্ট বিশ্বব্যাপী ইনস্টল করা। এটির অর্থ কেবল আপনার প্যাকেজ.জসনে ঠাট্টা ব্যবহার করার জন্য "পরীক্ষা" ম্যাপ করা হয়েছে

প্রকল্পের মূল স্তরে আমার জন্য যা কাজ করেছে তা নিম্নলিখিত:

node_modules/.bin/jest [args]

আরগগুলি আপনি চালনা করতে চান এমন পরীক্ষা ফাইল বা একাধিক ফাইল ধারণকারী ডিরেক্টরি হতে পারে।


আমার জন্য কাজ করেছেন;)
ওয়াগসল্যান্ড

1
ধন্যবাদ! এটি আমার জন্য খুব দরকারী ছিল!
আইজাক

5
বাইনারিগুলি কার্যকর করতে একটি শর্টকাট node_modules/.binহ'ল npxকমান্ড ব্যবহার করা । উদাহরণস্বরূপnpx jest [args]
সেরজিও মাজ্জোলেণী

16

আপনি যদি ব্যবহার করেন yarnতবে সরাসরি .spec.jsবা .test.jsপরে ফাইলটি যুক্ত করতে পারেন :

yarn test src/lib/myfile.test.js

package.jsonস্থানীয় প্যাকেজ হিসাবে তামাশা ইনস্টলের সাথে আমার এই অংশ (প্রাসঙ্গিক অংশগুলি সরানো):

{
...
  "scripts": {
    "test": "jest",
    "testw": "jest --watch",
    "testc": "jest --coverage",
...
  },
  "devDependencies": {
    "jest": "^18.1.0",
    ...
  },

}


6

আপনি যদি দৌড়াদৌড়ি npm >= 5.2.0করেন এবং স্থানীয়ভাবে আপনি ঠাট্টা ইনস্টল devDependenciesকরে থাকেন তবে npm i -d jestআপনি কোনও নির্দিষ্ট ফাইলটিতে ঠাট্টা চালাতে পারেনnpx jest /path/to/your/spec.js


5

আমরা কৌনিক সহ nrwl-nx ব্যবহার করছি । এই ক্ষেত্রে আমরা এই আদেশটি ব্যবহার করতে পারি:

npm test <ng-project> -- --testFile "file-name-part"

মন্তব্য:

  • npm testএতে উল্লিখিত পরীক্ষার স্ক্রিপ্টটি চালাবে package.json: "test:client": "ng test client"
  • এইভাবে বাকি সেন্টিমিডির এনজি পরীক্ষায় উত্তীর্ণ হবে
    • <ng-project> একটি প্রকল্পের নাম angular.json
      • আপনি যখন এই প্যারামিটারটি বাদ দেন তখন "defaultProject"(নির্দিষ্ট করা angular.json) ব্যবহার করা হবে (সুতরাং পরীক্ষাটি আপনার ডিফল্ট প্রকল্পে না থাকলে আপনাকে অবশ্যই এটি নির্দিষ্ট করতে হবে)
    • পরবর্তী আমাদের অবশ্যই নির্ধারণ করা উচিত যে কোন নির্মাতা ব্যবহৃত হয়েছে:
      • মধ্যে angular.jsonনেভিগেট "project"- "<ng-project>"- "architect"-"test"
      • এবং "builder"যা আমাদের ক্ষেত্রে এটি পরীক্ষা করুন :"@nrwl/jest:jest"
    • এখন যেহেতু আমরা নির্মাতাকে চিনি, আমাদের উপলব্ধ সিএমডি-লাইন পরামিতিগুলি সন্ধান করতে হবে
      • কমান্ড লাইনে, npm test server -- --helpসমস্ত উপলভ্য বিকল্পগুলি দেখতে রান করুন
      • অথবা অনলাইন ডক্স পরীক্ষা করুন
    • বিকল্পগুলির মধ্যে একটি --testFileযা এখানে ব্যবহৃত হয়

এটিই আমার জন্য এটি করেছে কারণ আমরা এনএক্স ব্যবহার করছি। ধন্যবাদ.
ব্যবহারকারী 906573

4

এইভাবে আমি পরীক্ষাটি আরম্ভ না করেই নির্দিষ্ট ফাইলটিতে গতিশীলভাবে পরীক্ষা চালাই। আমার প্রতিক্রিয়া প্রকল্প তৈরি হয়েছিলcreate-react-app

সুতরাং এটি পরিবর্তনগুলির জন্য পরীক্ষা দেখায়, যখন আমি পরিবর্তন করি তখন স্বয়ংক্রিয়ভাবে চলমান পরীক্ষা।

টার্মিনালে পরীক্ষার ফলাফলের শেষে আমি এটি দেখতে পাচ্ছি।

Test Suites: 16 passed, 16 total
Tests:       98 passed, 98 total
Snapshots:   0 total
Time:        5.048s
Ran all test suites.

Watch Usage: Press w to show more.

টিপুন

Watch Usage
  Press f to run only failed tests.
  Press o to only run tests related to changed files.
  Press q to quit watch mode.
  Press p to filter by a filename regex pattern.
  Press t to filter by a test name regex pattern.
  Press Enter to trigger a test run.

তারপরে পি টিপুন

Pattern Mode Usage
  Press Esc to exit pattern mode.
  Press Enter to filter by a filenames regex pattern.

 pattern 

 Start typing to filter by a filename regex pattern.

আমি 'লগইন' ফোল্ডারে 'index.es6.js' ফাইলটি চালাতে চেয়েছিলাম এটির পরে

Pattern Mode Usage
  Press Esc to exit pattern mode.
  Press Enter to filter by a filenames regex pattern.

 pattern  login/index

 Pattern matches 1 file
  src/containers/Login/index.es6.test.js

আমি নির্দিষ্ট ফাইলটিতে কীভাবে পরীক্ষাগুলি চালিয়ে যাচ্ছি তা ts


4

এছাড়াও অর্জন করা যেতে পারে

$ jest --findRelatedTests path/to/fileA.js

রেফ ( https://jestjs.io/docs/en/cli#running-from-the-command-line )

কীভাবে এটি এনএক্স মনোরেপোতে অর্জন করা যায়, তার উত্তর এখানে

user@host:/path/to/workspace$ npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts

রেফ এবং আরও তথ্য ( https://github.com/satminav/nx-qa/issues/6 )


1

আমি সবেমাত্র গ্লোবাল হিসাবে ঠাট্টা ইনস্টল করেছি এবং তারপরে দৌড়ে গেছে jest myFileToTest.spec.jsএবং এটি কার্যকর


1

আপনার দুটি বিকল্প রয়েছে:

  • বিকল্প 1: কমান্ড লাইন। আপনি নিম্নলিখিত কমান্ড চালাতে পারেন
node '/Users/complete-path-to-you-project/your-project/node_modules/.bin/jest' '/Users/complete-path-to-you-project/your-project/path-to-your-file-within-the-project/your-file.spec.ts'

এটি আপনাকে বিশ্বব্যাপী জেস্ট ইনস্টল করতে এড়িয়ে চলে। আপনি আপনার প্রকল্প দ্বারা ব্যবহৃত ঠাট্টা ব্যবহার।

  • বিকল্প 2: আপনি যদি ভিএস কোড ব্যবহার করে থাকেন তবে আপনার এটি করার জন্য দুর্দান্ত প্লাগইন রয়েছে: জেস্ট রানার । এটি আপনাকে কেবল ফাইল দ্বারা টেস্ট ফাইল চালানোর অনুমতি দেয় না এমনকি নির্দিষ্ট স্যুট এবং স্পেসগুলি চালানোর জন্য আপনি যে টেস্টগুলি চালাতে চান তার উপর ডান ক্লিক করুন।

0

আপনি যা পাস করেছেন তা জেস্ট ব্যবহার করবে একটি রেজেক্স প্যাটার্ন হিসাবে । যে জন্য মিলবে।

আপনি যদি একটি নির্দিষ্ট পরীক্ষা ফাইল চালাতে চান। তারপরে এটি করার সর্বোত্তম উপায় হ'ল এটির সম্পূর্ণ পথটি সুনির্দিষ্টভাবে করা। (আপনি (src / XFolder / index.spec.ts) এর মতো নির্দিষ্ট কোনও আপেক্ষিক পাথও সুনির্দিষ্ট করতে পারেন)।

ডিরেক্টরি এবং লিনাক্সে সম্পূর্ণ পাথ সরবরাহ করার সহজতম উপায় হ'ল:

jest $PWD/index.spec.ts

পরিবর্তনশীল $ পিডাব্লুডির ব্যবহারটি নোট করুন ।

এখানে চিত্র বর্ণনা লিখুন

উইন্ডোজের জন্য! (আপডেট করা)


0

কৌণিক এবং জেস্টের সাহায্যে আপনি এটিকে "স্ক্রিপ্টস" এর অধীনে প্যাকেজ.জসনে যুক্ত করতে পারেন

"test:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --runInBand"

তারপরে নির্দিষ্ট ফাইলের জন্য ইউনিট পরীক্ষা চালাতে আপনি আপনার টার্মিনালে এই কমান্ডটি লিখতে পারেন

npm run test:debug modules/myModule/someTest.spec.ts

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