ক্রমান্বয়ে জাস্ট টেস্টগুলি কীভাবে চালানো যায়?


140

আমি জাস্ট টেস্ট চালাচ্ছি npm test। জেস্ট ডিফল্টরূপে সমান্তরালে পরীক্ষা চালায়। পরীক্ষাটি ক্রমানুসারে চালানোর কোনও উপায় আছে কি?

আমার তৃতীয় পক্ষের কোডকে কল করার কিছু টেস্ট রয়েছে যা বর্তমান ওয়ার্কিং ডিরেক্টরিটি পরিবর্তনের উপর নির্ভর করে।

উত্তর:


220

সিএলআই বিকল্পগুলি ডকুমেন্টেড এবং কমান্ডটি চালিয়ে অ্যাক্সেসযোগ্য jest --help

আপনি বিকল্প আপনি খুঁজছেন দেখতে পাবেন: --runInBand


5
অনেক ধন্যবাদ! এটা কি npm test --runInBand? অফটপিক: "ব্যান্ড" নামটি কোথা থেকে এসেছে তা নিশ্চিত নয়। --runSequentially সম্ভবত আরও জ্ঞান তৈরি করবে :)
মার্টিন কোনিসেক

13
@ মার্টিনকোনিসেক npm test -- --runInBandসঠিক
ওন্দ্রেজ স্লিনটেক

40
দুর্ভাগ্যক্রমে, মৃত্যুদণ্ডের আদেশটি নিয়ন্ত্রণ করা যায় না এমন বিষয়টি জেস্টকে ইন্টিগ্রেশন পরীক্ষার জন্য বেশ বেহুদা করে তোলে।
ইভান বি

19
@ ইভান আপনার নির্দিষ্ট পরীক্ষাগুলিতে আপনার পরীক্ষাগুলি চালানো দরকার তা গন্ধ।
নিকো ভ্যান বেল

18
@ নিকোভ্যানবেল যথেষ্ট জটিল রাষ্ট্রীয় সিস্টেমগুলির সত্যিকারের শেষ থেকে শেষের টেস্টিংয়ের জন্য আপনি যে মূল্যটি প্রদান করেন এটি কেবল সহজেই। আমি বিকল্পগুলির জন্য উন্মুক্ত, তবে এখনও আমি এমন একটি সমাধান দেখতে পেলাম যাতে পরীক্ষার মধ্যে নিরীহভাবে স্ট্যাকের মূল অংশগুলি অদলবদল করা বা নিষিদ্ধভাবে ধীর ডাটাবেস পুনরায় সেট করা জড়িত না। এর অর্থ এই নয় যে জাস্টটি একটি খারাপ সরঞ্জাম, এই বিশেষ ধরণের পরীক্ষার জন্য কেবল একটি ভুল।
ইভান বি

17

আমি এখনও জেস্টের সাথে পরিচিত হয়েছি, তবে এটি প্রদর্শিত হয় যে ব্লকগুলি সিঙ্ক্রোনিকভাবে চালিত হয় যখন পরীক্ষার ব্লকগুলি অবিচ্ছিন্নভাবে চালিত হয়। আমি বহিরাগত বর্ণনার মধ্যে একাধিক বর্ণনা ব্লক চালাচ্ছি যা দেখতে এরকম কিছু দেখাচ্ছে:

describe
    describe
        test1
        test2

    describe
        test3

এই ক্ষেত্রে, সম্পূর্ণ test3না হওয়া পর্যন্ত চলবে না test2কারণ test3একটি বিবরণ ব্লকে রয়েছে যা বর্ণনামূলক ব্লককে অনুসরণ করে test2


1
এটি এখনও সমান্তরালে চলতে পারে।
LCB

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

14

এটি আমার পক্ষে মডিউল পরীক্ষাগুলিতে ভালভাবে বিচ্ছিন্নভাবে চলার বিষয়টি নিশ্চিত করার জন্য কাজ করেছিল:

1) পৃথক ফাইলগুলিতে পরীক্ষা রাখুন, তবে spec/testনামকরণ ছাড়াই ।

|__testsToRunSequentially.test.js
|__tests
   |__testSuite1.js
   |__testSuite2.js
   |__index.js

2) টেস্ট স্যুট সহ ফাইলটিও এর মতো দেখতে হবে (testSuite1.js):

export const testSuite1 = () => describe(/*your suite inside*/)

3) এগুলিতে আমদানি করুন testToRunSequentially.test.jsএবং এর সাথে চালান --runInBand:

import { testSuite1, testSuite2 } from './tests'

describe('sequentially run tests', () => {
   testSuite1()
   testSuite2()
})

আপনার ইতিমধ্যে দুটি পরীক্ষার স্যুট আছে বলে আপনার --runInBand দিয়ে চালানোর দরকার নেই। চাইল্ড টেস্ট স্যুটগুলি ধারাবাহিকভাবে কার্যকর করা হয়।
রিচি কুমার

10

সিরিয়াল পরীক্ষা রানার ব্যবহার করুন:

npm install jest-serial-runner --save-dev

এটি ব্যবহারের জন্য ঠাট্টা সেট আপ করুন, যেমন jest.config.js এ:

module.exports = {
   ...,
   runner: 'jest-serial-runner'
};

আপনি প্রকল্পের বৈশিষ্ট্যটি এটি কেবল পরীক্ষার উপসেটে প্রয়োগ করতে ব্যবহার করতে পারেন। Https://jestjs.io/docs/en/configration#projects-arraystring--projectconfig দেখুন


আপনি প্রকল্পের বৈশিষ্ট্যটি এটি কেবল পরীক্ষার উপসেটের জন্য ব্যবহার করতে পারেন। কীভাবে?
Nux

1
@ নাক্স জেস্টে 'প্রকল্পগুলি' কনফিগারেশন সেটিং আপনাকে পরীক্ষার নির্দিষ্ট সেটগুলিতে নির্বাচিতভাবে অন্যান্য কনফিগারেশন সেটিংস প্রয়োগ করতে দেয়। ডক্স এবং উদাহরণের লিঙ্ক সহ উত্তর আপডেট হয়েছে updated
জোচিম লাউস

4

Https://github.com/facebook/jest/issues/6194#issuecomment-419837314 থেকে অনুলিপি করা হয়েছে

test.spec.js

import { signuptests } from './signup'
import { logintests } from './login'

describe('Signup', signuptests)
describe('Login', logintests)

signup.js

export const signuptests = () => {
     it('Should have login elements', () => {});
     it('Should Signup', () => {}});
}

login.js

export const logintests = () => {
    it('Should Login', () => {}});
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.